Access Server jinjora l-iskript post_auth li ġie editjat minnek fuq id-diska
L-editjar tal-fajl post_auth fuq id-diska ma jagħmel xejn: Access Server iħaddem il-kopja fid-database tal-konfigurazzjoni tiegħu. Segwi t-triq tad-deċiżjoni u l-kmandi sacli.
mac.py editjat li ma jbiddel xejn huwa l-ewwel sintomu tas-soltu. Il-fajl fuq id-diska mhuwiex dak li jħaddem Access Server; is-servizz tal-awtentikazzjoni jgħabbi l-iskript mid-database tal-konfigurazzjoni tas-server, u dik il-kopja maħżuna hija dik li tiddeċiedi d-dħul. Sakemm il-valur maħżun jiġi sostitwit, kull test juri biss li l-iskript il-qadim għadu jaħdem.
Tliet kundizzjonijiet jiddeċiedu x-xogħol: jekk il-valur qatt tqiegħed fid-database tal-konfigurazzjoni, jekk is-servizz ingħatax ordni biex jerġa jgħabbih, u jekk il-kodiċi li biddiltx verament jitħaddimx fkull konnessjoni. Kull waħda għandha sintomu differenti, u t-tiswija tal-ħażina taħli tieqa tal-manutenzjoni.
Il-fajl huwa sors, mhux il-kopja li qed taħdem
Access Server iżomm l-iskript post-auth taħt iċ-ċavetta auth.module.post_auth_script. L-editjar tal-fajl jaġġorna biss il-kopja tax-xogħol tiegħek. Id-daemon jaqra l-valur maħżun, għalhekk il-bidla tibqa inviżibbli sakemm tħassar id-dħul il-qadim u tqiegħed il-fajl il-ġdid fil-post tiegħu. Dak il-valur maħżun huwa l-unika kopja li tispezzjona s-servizz tal-awtentikazzjoni.
Aqrah qabel tibdlu. Jekk diġà jaqbel mal-fajl li editjajt, il-problema mhijiex fil-ħażna u għaddi għall-mistoqsija tal-ambitu. Jekk juri verżjoni eqdem, il-bidla qatt ma waslet għand is-servizz.
./sacli -k auth.module.post_auth_script ConfigGetIssostitwixxi l-kopja maħżuna, imbagħad applikaha
It-tħassir qabel il-kitba mhuwiex tiżjin. ConfigPut ma --value_file jissostitwixxi l-valur f pass wieħed, u ConfigDel l-ewwel jagħmel impossibbli li jitħalla dħul antik jew korrott. Żomm kopja tal-iskript li jaħdem barra mid-direttorju tal-iskripts qabel tibda.
./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 japplika l-konfigurazzjoni mibdula fuq is-servizzi interni, u dan huwa dak li jagħmel l-iskript il-ġdid fis-seħħ. Mhuwiex l-istess bħal restart tal-magna kollha jew tad-daemon, u m’għandux jiġi sostitwit b’dan sakemm il-bidla tiegħek ma teħtieġx dan.
Uża mogħdija assoluta għall-fajl tal-valur u kkonferma li root jista jaqrah. Mogħdija li tissolva mill-qoxra tiegħek imma mhux mill-kont tas-servizz tagħti valur maħżun li jidher tajjeb f ConfigGet u jonqos fl-ewwel dħul. Iċċekkja r-riżultat maħżun darba oħra wara sacli start, mhux qabel.
Ambitu tal-modulu jew għal kull konnessjoni: fejn għandha tkun il-mistoqsija
Python iħaddem id-dikjarazzjonijiet fil-livell tal-modulu darba, meta l-iskript jiġi mgħobbi. Għalhekk mistoqsija tad-database miktuba fil-bidu tal-fajl taqra t-tabella fil-ħin tat-tagħbija u żżomm dik it-tweġiba għal kull konnessjoni sussegwenti. Dan huwa t-tieni raġuni għaliex bidla tidher li ma tagħmel xejn: il-kodiċi jitħaddem, imma mhux fil-ħin li tistema.
Qiegħed il-mistoqsija ġewwa l-handler post_auth biex titħaddem f kull awtentikazzjoni. Żomm il-firma dokumentata, aġġusta r-riżultat tal-awtentikazzjoni li jirċievi l-handler, u rritorna dak l-istess oġġett minflok numru nieqes.
Żomm ukoll il-ġestjoni tal-konnessjoni ġewwa l-handler. Konnessjoni miftuħa waqt l-importazzjoni tista tiġi magħluqa mis-server qabel ma jidħol l-ewwel utent, u l-iżball li jirriżulta jidher bħala kredenzjali miċħuda aktar milli bħala skript miksur.
Żewġ toroq taċ-ċaħda, sid wieħed
Jekk id-deċiżjoni hija mistoqsija lokali, il-handler Python jippossjedi r-riżultat. Jekk hija verifika HTTP esterna, ħalli l-istat tal-ħruġ tal-kmand iġorr it-tweġiba: involukru li joħroġ b kodiċi mhux żero jiċħad id-dħul, u l-istat tal-aħħar kmand isir l-istat tal-iskript mingħajr exit espliċitu.
Żomm is-sigriet barra mil-lista tal-proċessi. Fajl li root jista jaqra jew valur tal-ambjent mgħoddi mis-servizz huwa aktar sikur minn argument li kwalunkwe utent lokali jista jaqra minn ps. Iffissa l-punt tat-tmiem f varjabbli qabel is-sejħa, sabiex żball tat-tipa jonqos fil-konfigurazzjoni u mhux waqt id-dħul ta xi ħadd. Dawwar dak is-sigriet bħal kwalunkwe kredenzjali oħra.
Agħżel sid wieħed għal kull verifika. Skript li jistaqsi d-database u jsejjaħ servizz HTTP jeħtieġ regola ta prijorità ddikjarata għall-każ li t-tnejn ma jaqblux, inkella r-raġuni taċ-ċaħda fil-log ma taqbilx ma dak li ntqal lill-utent.
Applika dan mingħajr ma tissakkar lill-amministratur
Żewġ salvagwardji jagħmlu l-bidla riversibbli: tieni kont amministrattiv li ma jiddependix mill-iskript, u kopja tajba magħrufa miżmuma barra mid-direttorju tal-iskripts. Applika l-bidla f tieqa tal-manutenzjoni, imbagħad osserva dħul ta prova wieħed u ċaħda intenzjonata waħda qabel ma tiskonnettja. Jekk il-log juri żball tas-sintassi minflok deċiżjoni tal-awtentikazzjoni, l-iskript maħżun huwa miksur u kull dħul jonqos.
Żewġ kundizzjonijiet jgħidu stenna: ma tistax taqra l-fajl tal-valur bħala root, jew m għandekx it-tieni triq lejn l-interface amministrattiva. It-tnejn ibiddlu bidla żgħira fi sokk, u l-ebda waħda mhix tajba li tiġi ttestjata fuq server tal-produzzjoni fl-aħħar tal-ġurnata. Id-dokumentazzjoni ta Access Server tkopri l-interface post-auth u l-oqsma appoġġjati tiegħu.