Ештеңені өзгертпейтін өңделген 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 start

sacli start өзгертілген конфигурацияны ішкі қызметтерге қолданады, жаңа скрипттің күшіне енуін осы жасайды. Бұл бүкіл машинаны немесе демонды қайта іске қосумен бірдей емес және жасап жатқан өзгерісіңіз талап етпейінше, онымен алмастыруға болмайды.

Мән файлы үшін абсолютті жолды пайдаланыңыз және root оны оқи алатынына көз жеткізіңіз. Сіздің қабығыңыздан шешілетін, бірақ қызмет тіркелгісінен шешілмейтін жол ConfigGet-де дұрыс көрінетін және бірінші кіруде сәтсіз аяқталатын сақталған мән береді. Сақталған нәтижені sacli start-ден кейін тағы бір рет тексеріңіз, одан бұрын емес.

Модуль ауқымы немесе әр қосылым: сұраныс қайда болуы керек

Python модуль деңгейіндегі мәлімдемелерді скрипт жүктелгенде бір рет орындайды. Сондықтан файлдың басында жазылған дерекқор сұранысы кестені жүктеу кезінде оқып, сол жауапты кейінгі әр қосылым үшін сақтайды. Өзгерістің ештеңе істемейтін болып көрінуінің екінші себебі осы: код орындалады, бірақ сіз күткен уақытта емес.

Сұранысты post_auth өңдеушісінің ішіне қойыңыз, ол әр аутентификацияда орындалсын. Құжатталған қолтаңбаны сақтаңыз, өңдеуші алатын аутентификация нәтижесін реттеңіз және жалаң санның орнына сол нысанның өзін қайтарыңыз.

Қосылымды басқаруды да өңдеушінің ішінде ұстаңыз. Импорт кезінде ашылған қосылымды сервер бірінші пайдаланушы кірмей тұрып жабуы мүмкін, ал пайда болған қате сынған скриптке емес, қабылданбаған тіркелгі деректеріне ұқсайды.

Бас тартудың екі жолы, бір иесі

Егер шешім жергілікті сұраныс болса, нәтижеге Python өңдеушісі иелік етеді. Егер ол сыртқы HTTP тексеруі болса, жауапты команданың шығу мәртебесі алып жүрсін: нөлдік емес кодпен шығатын қабықша кіруді қабылдамайды және соңғы команданың мәртебесі айқын exit-сіз скрипттің мәртебесіне айналады.

Құпияны процестер тізімінен тыс ұстаңыз. root оқи алатын файл немесе қызмет жіберетін орта мәні кез келген жергілікті пайдаланушы ps-ден оқи алатын дәйектен қауіпсіздеу. Шақыру алдында соңғы нүктені айнымалыға бекітіңіз, теру қатесі конфигурация кезінде сәтсіз болсын, біреудің кіруі кезінде емес. Бұл құпияны кез келген басқа тіркелгі деректері сияқты ауыстырып отырыңыз.

Әр тексеруге бір ие таңдаңыз. Дерекқорға сұраныс жасап, HTTP қызметін шақыратын скрипт екеуі қайшы келген жағдай үшін жарияланған басымдық ережесін қажет етеді, әйтпесе журналдағы бас тарту себебі пайдаланушыға айтылғанға сәйкес келмейді.

Әкімшіні құлыптамай қолданыңыз

Екі сақтандырғыш өзгерісті қайтарылатын етеді: скриптке тәуелді емес екінші әкімші тіркелгісі және скрипттер қалтасынан тыс сақталатын белгілі жақсы көшірме. Өзгерісті техникалық қызмет терезесінде қолданыңыз, содан кейін ажыратпас бұрын бір сынақ кіруді және бір әдейі бас тартуды бақылаңыз. Егер журнал аутентификация шешімінің орнына синтаксистік қатені көрсетсе, сақталған скрипт бүлінген және әрбір кіру сәтсіз болады.

Екі шарт күте тұрыңыз дейді: мән файлын root ретінде оқи алмайсыз, немесе әкімшілік интерфейске екінші жол жоқ. Екеуі де шағын өзгерісті құлыптауға айналдырады және күн соңында өндірістік серверде сынауға тұрарлық емес. Access Server құжаттамасы post-auth интерфейсін және оның қолдау көрсетілетін өрістерін қамтиды.

Қатысты мақалалар