Access Server дискте өзгөрткөн post_auth скриптиңизди эске албайт
post_auth файлын дискте оңдоо эч нерсе бербейт: Access Server конфигурация маалымат базасындагы көчүрмөнү аткарат. Чечим жолун жана sacli буйруктарын аткарыңыз.
Эч нерсени өзгөртпөгөн оңдолгон mac.py кадимки биринчи белги. Дисктеги файл Access Server аткарган файл эмес; аутентификация кызматы скриптти сервердин конфигурация маалымат базасынан жүктөйт, ошол сакталган көчүрмө кирүүнү чечет. Сакталган маани алмаштырылмайынча, ар бир сыноо эски скрипт дагы эле иштеп жатканын гана далилдейт.
Ишти үч шарт чечет: маани конфигурация маалымат базасына качандыр бир убакта киргизилдиби, кызматка аны кайра жүктөө буйругу берилдиби, жана сиз өзгөрткөн код чын эле ар бир туташууда аткарылабы. Ар биринин белгиси башка, ал эми туура эмесин оңдоо тейлөө терезесин текке кетирет.
Файл – булак, аткарылып жаткан көчүрмө эмес
Access Server post-auth скриптин auth.module.post_auth_script ачкычынын астында сактайт. Файлды оңдоо сиздин иш көчүрмөңүздү гана жаңыртат. Демон сакталган маанини окуйт, ошондуктан эски жазууну өчүрүп, анын ордуна жаңы файлды коймоюнча өзгөртүү көрүнбөйт. Ошол сакталган маани – аутентификация кызматы кайрылган жалгыз көчүрмө.
Аны өзгөртүүдөн мурун окуңуз. Эгер ал сиз оңдогон файлга дал келсе, көйгөй сактоодо эмес, көлөм суроосуна өтүңүз. Эгер эскирээк версияны көрсөтсө, өзгөртүү кызматка жеткен эмес.
./sacli -k auth.module.post_auth_script ConfigGetСакталган көчүрмөнү алмаштырыңыз, анан колдонуңуз
Жазганга чейин өчүрүү – жасалга эмес. ConfigPut --value_file менен маанини бир кадамда алмаштырат, ал эми алгач ConfigDel жасоо эскирген же бузулган жазуунун калышын мүмкүн эмес кылат. Баштоодон мурун иштеп жаткан скрипттин көчүрмөсүн скрипттер папкасынын сыртында сактаңыз.
./sacli -k auth.module.post_auth_script ConfigDel
# store the file, then apply it
./sacli -k auth.module.post_auth_script --value_file=/root/post_auth.py ConfigPut
./sacli startsacli start өзгөртүлгөн конфигурацияны ички кызматтарга колдонот, жаңы скрипттин күчүнө киришин ушул камсыз кылат. Бул бүт машинаны же демонду кайра баштоо менен бирдей эмес жана жасап жаткан өзгөртүүңүз талап кылбаса, аны менен алмаштырууга болбойт.
Маани файлы үчүн абсолюттук жолду колдонуңуз жана root аны окуй аларын текшериңиз. Сиздин кабыгыңыздан чечилген, бирок кызмат эсебинен чечилбеген жол ConfigGet ичинде туура көрүнгөн жана биринчи кирүүдө ишке ашпаган сакталган маани берет. Сакталган жыйынтыкты sacli start кийин дагы бир жолу текшериңиз, андан мурун эмес.
Модулдун көлөмү же ар бир туташуу: сурам кайда болушу керек
Python модул деңгээлиндеги билдирүүлөрдү скрипт жүктөлгөндө бир жолу аткарат. Ошондуктан файлдын башында жазылган маалымат базасынын сурамы таблицаны жүктөө учурунда окуп, ошол жоопту кийинки ар бир туташуу үчүн сактап калат. Өзгөртүү эч нерсе кылбайт окшоп көрүнүшүнүн экинчи себеби ушул: код аткарылат, бирок сиз күткөн учурда эмес.
Сурамды post_auth иштетүүчүсүнүн ичине коюңуз, ал ар бир аутентификацияда аткарылсын. Документтелген кол тамганы сактаңыз, иштетүүчү алган аутентификация жыйынтыгын ылайыкташтырыңыз жана жылаңач сандын ордуна ошол эле объектини кайтарыңыз.
Туташууну башкарууну да иштетүүчүнүн ичинде кармаңыз. Импортто ачылган туташууну сервер биринчи колдонуучу киргенге чейин жабышы мүмкүн, ал эми пайда болгон ката бузулган скриптке эмес, четке кагылган каттоо маалыматтарына окшошот.
Четке кагуунун эки жолу, бир ээси
Эгер чечим жергиликтүү сурам болсо, жыйынтыкка Python иштетүүчүсү ээлик кылат. Эгер ал тышкы HTTP текшерүү болсо, жоопту буйруктун чыгуу статусу алып жүрсүн: нөл эмес код менен чыккан каптооч кирүүнү четке кагат, ал эми акыркы буйруктун статусу ачык exit жок скрипттин статусуна айланат.
Сырды процесстер тизмесинин сыртында кармаңыз. root окуй алган файл же кызмат өткөргөн чөйрө мааниси, каалаган жергиликтүү колдонуучу ps ичинен окуй алган аргументтен коопсузураак. Чалуудан мурун акыркы чекитти өзгөрмөгө бекитиңиз, терүү катасы конфигурация учурунда ишке ашпасын, бирөөнүн кирүүсүндө эмес. Бул сырды башка каттоо маалыматтары сыяктуу эле алмаштырып туруңуз.
Ар бир текшерүүгө бир ээни тандаңыз. Маалымат базасына сурам жөнөтүп, HTTP кызматын чакырган скрипт экөө кайчы келген учур үчүн жарыяланган артыкчылык эрежесин талап кылат, болбосо журналдагы четке кагуу себеби колдонуучуга айтылганга дал келбейт.
Администраторду кулпулабай колдонуңуз
Эки коргоо өзгөртүүнү кайтарыла турган кылат: скриптке көз каранды эмес экинчи админ эсеби жана скрипттер папкасынын сыртында сакталган белгилүү жакшы көчүрмө. Өзгөртүүнү тейлөө терезесинде колдонуңуз, анан ажыратканга чейин бир сыноо кирүүнү жана бир атайын четке кагууну байкаңыз. Эгер журнал аутентификация чечиминин ордуна синтаксистик ката көрсөтсө, сакталган скрипт бузулган жана ар бир кирүү ишке ашпайт.
Эки шарт күтө туруңуз дейт: маани файлын root катары окуй албайсыз, же администратор интерфейсине экинчи жол жок. Экөө тең кичине өзгөртүүнү кулпуга айландырат жана күн аягында өндүрүштүк серверде сыноого татыктуу эмес. Access Server документтери post-auth интерфейсин жана анын колдоого алынган талааларын камтыйт.