Access Server hunsar post_auth-skriptið sem þú breyttir á disknum
Að breyta post_auth-skránni á disknum gerir ekkert: Access Server keyrir afritið í stillingagagnagrunni sínum. Fylgdu ákvörðunarferlinum og sacli-skipununum.
Breytt mac.py sem breytir engu er venjulegt fyrsta einkennið. Skráin á disknum er ekki það sem Access Server keyrir; auðkenningarþjónustan hleður skriptinu úr stillingagagnagrunni þjónsins, og það geymda afrit er það sem ræður innskráningu. Þangað til geymda gildið er skipt út sannar hver prófun aðeins að gamla skriptið virki enn.
Þrjú skilyrði ráða verkinu: hvort gildið var einhvern tíma sett í stillingagagnagrunninn, hvort þjónustunni var boðið að hlaða því aftur, og hvort kóðinn sem þú breyttir keyri í raun við hverja tengingu. Hvert hefur annað einkenni, og að laga það rangt eyðir viðhaldsglugga.
Skráin er uppspretta, ekki keyrandi afrit
Access Server heldur post-auth skriptinu undir lyklinum auth.module.post_auth_script. Að breyta skránni uppfærir aðeins vinnuafritið þitt. Dæmoninn les geymda gildið, svo breytingin verður ósýnileg þar til þú eyðir gamla færslunni og setur nýju skrána í hennar stað. Það geymda gildi er eina afritið sem auðkenningarþjónustan skoðar.
Lestu það áður en þú breytir því. Ef það passar nú þegar við skrána sem þú breyttir er vandamálið ekki í geymslunni og farðu í spurninguna um umfang. Ef það sýnir eldri útgáfu náði breytingin aldrei til þjónustunnar.
./sacli -k auth.module.post_auth_script ConfigGetSkiptu um geymda afritið og settu það síðan í gildi
Að eyða áður en skrifað er er ekki skraut. ConfigPut með --value_file skiptir gildinu út í einu skrefi, og ConfigDel fyrst gerir það ómögulegt að skilja eftir úrelta eða skemmdа færslu. Geymdu afrit af virka skriptinu utan skriftuskrárinnar áður en þú byrjar.
./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 beitir breyttu stillingunni á innri þjónusturnar, og það er það sem lætur nýja skriptið taka gildi. Það er ekki það sama og að endurræsa alla vélina eða dæmoninn, og ætti ekki að skipta því út fyrir það nema breytingin þín krefjist þess.
Notaðu algerlega slóð fyrir gildisskrána og staðfestu að root geti lesið hana. Slóð sem leysist úr skelinni þinni en ekki úr þjónustureikningnum gefur geymt gildi sem lítur rétt út í ConfigGet og bregst við fyrstu innskráningu. Athugaðu geymda niðurstöðuna einu sinni enn eftir sacli start, ekki fyrr.
Umfang einingar eða fyrir hverja tengingu: hvar fyrirspurnin á heima
Python keyrir fullyrðingar á einingarstigi einu sinni, þegar skriptið er hlaðið. Þess vegna les gagnagrunnsfyrirspurn sem skrifuð er efst í skrána töfluna við hleðslu og heldur því svari fyrir hverja síðari tengingu. Þetta er önnur ástæðan fyrir því að breyting virðist gera ekkert: kóðinn keyrir, en ekki þegar þú átt von á því.
Settu fyrirspurnina inn í post_auth-meðhöndlarann svo hún keyri við hverja auðkenningu. Haltu skjalfestu undirskriftinni, stilltu auðkenningarniðurstöðuna sem meðhöndlarinn fær og skilaðu sama hlutnum í stað berrar tölu.
Haltu tengingarstjórnuninni líka inni í meðhöndlaranum. Tenging sem opnast við innflutning getur verið lokuð af þjóninum áður en fyrsti notandinn skráir sig inn, og villan sem verður til lítur út eins og hafnað skírteini frekar en brotið skript.
Tvær höfnunarleiðir, einn eigandi
Ef ákvörðunin er staðbundin fyrirspurn á Python-meðhöndlarinn niðurstöðuna. Ef hún er ytri HTTP-athugun skal útgöngustaða skipunarinnar bera svarið: umbúðir sem ganga út með núll-tölu hafna innskráningunni, og staða síðustu skipunar verður staða skriptsins án skýrs exit.
Haltu leyndarmálinu utan ferlalistans. Skrá sem root getur lesið eða umhverfisgildi sem þjónustan sendir er öruggara en rök sem hver staðbundinn notandi getur lesið úr ps. Festu endapunktinn í breytu fyrir kallið, svo innsláttarvilla mistakist við stillingu en ekki meðan einhver skráir sig inn. Snúðu því leyndarmáli á sama hátt og hverju öðru skírteini.
Veldu einn eiganda fyrir hverja athugun. Skript sem bæði spyr gagnagrunninn og kallar HTTP-þjónustu þarf skýra forgangsreglu fyrir það tilvik að þau stangast á, annars passar höfnunarástæðan í lokanum ekki við það sem notandanum var sagt.
Settu það í gildi án þess að læsa stjórnandanum úti
Tvær varnir gera breytinguna afturkræfa: annar stjórnandareikningur sem er ekki háður skriptinu, og þekkt gott afrit geymt utan skriftuskrárinnar. Settu breytinguna í gildi í viðhaldsglugga og fylgstu síðan með einni prófunarinnskráningu og einni viljandi höfnun áður en þú aftengist. Ef lokinn sýnir setningarvillu í stað auðkenningarákvörðunar er geymda skriptið brotið og hver innskráning mun bregðast.
Tvö skilyrði segja bíddu: þú getur ekki lesið gildisskrána sem root, eða þú hefur ekki aðra leið inn í stjórnandaviðmótið. Bæði gera litla breytingu að útlæsingu, og hvorugt er þess virði að prófa á framleiðsluþjóni í lok dags. Skjölun Access Server nær yfir post-auth viðmótið og studdu sviðin.