Access Server-ek ez du kontuan hartzen diskoan editatu duzun post_auth script-a
post_auth fitxategia diskoan editatzeak ez du ezer egiten: Access Server-ek konfigurazio datu-basean dagoen kopia exekutatzen du. Jarraitu erabakiaren bidea eta sacli komandoak.
Ezer aldatzen ez duen mac.py editatu bat da ohiko lehen sintoma. Diskoan dagoen fitxategia ez da Access Server-ek exekutatzen duena; autentifikazio zerbitzuak zerbitzariaren konfigurazio datu-basetik kargatzen du script-a, eta gordetako kopia horixe da saio-hasiera bat erabakitzen duena. Gordetako balioa ordezkatu arte, egiten duzun proba bakoitzak script zaharrak oraindik funtzionatzen duela baino ez du frogatzen.
Hiru baldintzak erabakitzen dute lana: balioa inoiz konfigurazio datu-basean sartu zen, zerbitzuari berriro kargatzeko agindua eman zitzaion, eta aldatu duzun kodeak benetan konexio bakoitzean exekutatzen den. Bakoitzak sintoma desberdina du, eta okerra konpontzeak mantentze-leiho bat alferrik galtzen du.
Fitxategia iturria da, ez exekuzio-kopia
Access Server-ek post-auth script-a auth.module.post_auth_script gakoaren azpian gordetzen du. Fitxategia editatzeak zure lan-kopia eguneratzen du eta besterik ez. Demonioak gordetako balioa irakurtzen du, beraz edizioa ikusezin gelditzen da sarrera zaharra ezabatu eta fitxategi berria haren lekuan jarri arte. Gordetako balio hori da autentifikazio zerbitzuak kontsultatzen duen kopia bakarra.
Irakurri aldatu aurretik. Editatu duzun fitxategiarekin bat badator jada, arazoa ez dago biltegian eta joan esparruaren galderara. Bertsio zaharragoa erakusten badu, edizioa ez zen zerbitzura iritsi.
./sacli -k auth.module.post_auth_script ConfigGetOrdeztu gordetako kopia, eta gero aplikatu
Idatzi aurretik ezabatzea ez da apaingarria. ConfigPut --value_file-rekin balioa urrats bakarrean ordezkatzen du, eta ConfigDel lehenengo egiteak ezinezko egiten du sarrera zaharkitua edo hondatua bertan uztea. Gorde script funtzionalaren kopia bat script direktorioetatik kanpo hasi aurretik.
./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 aldatutako konfigurazioa barne zerbitzuei aplikatzen die, eta horrek jartzen du script berria indarrean. Ez da makina osoa edo demonioa berrabiaraztearen berdina, eta ez litzateke horrekin ordezkatu behar egiten ari zaren aldaketak hala eskatzen ez badu.
Erabili bide absolutua balio-fitxategirako eta egiaztatu root-ek irakur dezakeela. Zure shell-etik ebazten den baina zerbitzu-kontutik ebazten ez den bideak gordetako balio bat sortzen du, ConfigGet-n ondo dirudiena eta lehen saio-hasieran huts egiten duena. Egiaztatu gordetako emaitza beste behin sacli start ondoren, ez aurretik.
Moduluaren esparrua edo konexio bakoitzeko: non dagokion kontsulta
Python-ek modulu mailako adierazpenak behin exekutatzen ditu, script-a kargatzean. Beraz, fitxategiaren goialdean idatzitako datu-base kontsultak taula kargatzean irakurtzen du eta erantzun hori gordetzen du ondorengo konexio bakoitzerako. Hori da edizio batek ezer ez egiten duela dirudien bigarren arrazoia: kodea exekutatzen da, baina ez espero duzun unean.
Jarri kontsulta post_auth kudeatzailearen barruan, autentifikazio bakoitzean exekuta dadin. Mantendu dokumentatutako sinadura, egokitu kudeatzaileak jasotzen duen autentifikazio-emaitza, eta itzuli objektu bera zenbaki huts baten ordez.
Mantendu konexioaren kudeaketa ere kudeatzailearen barruan. Inportatzean irekitako konexioa zerbitzariak itxi dezake lehen erabiltzailea sartu aurretik, eta sortutako errorea baztertutako kredentziala bezala agertzen da, ez script hautsia bezala.
Baztertzeko bi bide, jabe bakarra
Erabakia tokiko kontsulta bada, Python kudeatzailea da emaitzaren jabea. Kanpo HTTP egiaztapena bada, utzi komandoaren irteera-egoerari erantzuna eramatea: zero ez den kodearekin irteten duen bilgarri batek saio-hasiera baztertzen du, eta azken komandoaren egoera script-aren egoera bihurtzen da exit espresikorik gabe.
Mantendu sekretua prozesuen zerrendatik kanpo. root-ek irakur dezakeen fitxategi bat edo zerbitzuak pasatutako ingurune-balio bat seguruagoa da edozein erabiltzaile lokalek ps-tik irakur dezakeen argumentu bat baino. Finkatu amaiera-puntua aldagai batean deia baino lehen, tipografia-akats bat konfigurazioan huts egin dezan, ez norbaiten saio-hasieran. Biratu sekretu hori beste edozein kredentzial bezala.
Aukeratu jabe bakarra egiaztapen bakoitzeko. Datu-basea kontsultatzen eta HTTP zerbitzu bat deitzen dituen script batek lehentasun-arau aitortua behar du biak ados ez daudenerako, bestela erregistroko baztertze-arrazoia ez dator bat erabiltzaileari esan zitzaionarekin.
Aplikatu administratzailea blokeatu gabe
Bi babesek aldaketa atzergarri egiten dute: script-aren mende ez dagoen bigarren admin kontu bat, eta script direktorioetatik kanpo gordetako kopia on ezagun bat. Aplikatu aldaketa mantentze-leiho batean, eta gero behatu probako saio-hasiera bat eta nahita egindako baztertze bat deskonektatu aurretik. Erregistroak autentifikazio-erabakiaren ordez sintaxi-errore bat erakusten badu, gordetako script-a hondatuta dago eta saio-hasiera guztiek huts egingo dute.
Bi baldintzak esaten dute itxaron: ezin duzu balio-fitxategia root gisa irakurri, edo ez duzu bigarren biderik admin interfazera. Biek aldaketa txiki bat blokeo bihurtzen dute, eta batek ere ez du merezi egunaren amaieran ekoizpen zerbitzari batean probatzea. Access Server dokumentazioak post-auth interfazea eta onartzen dituen eremuak biltzen ditu.