mac.py iliyohaririwa ambayo haibadilishi chochote ni dalili ya kwanza ya kawaida. Faili iliyo kwenye diski si ile ambayo Access Server huendesha; huduma ya uthibitishaji hupakia skripti kutoka hifadhidata ya usanidi ya seva, na nakala hiyo iliyohifadhiwa ndiyo huamua kuingia. Hadi thamani iliyohifadhiwa ibadilishwe, kila jaribio huthibitisha tu kwamba skripti ya zamani bado inafanya kazi.

Masharti matatu huamua kazi: kama thamani iliwekwa kwenye hifadhidata ya usanidi wakati wowote, kama huduma iliamriwa kuipakia tena, na kama msimbo uliobadilisha unaendeshwa kweli kwa kila muunganisho. Kila moja lina dalili tofauti, na kurekebisha lisilo sahihi hutumia muda wa matengenezo bure.

Faili ni chanzo, si nakala inayoendeshwa

Access Server huhifadhi skripti ya post-auth chini ya ufunguo auth.module.post_auth_script. Kuhariri faili husasisha nakala yako ya kazi pekee. Daemon husoma thamani iliyohifadhiwa, kwa hiyo mabadiliko hayo hubaki bila kuonekana hadi ufute kiingilio cha zamani na kuweka faili mpya mahali pake. Thamani hiyo iliyohifadhiwa ndiyo nakala pekee ambayo huduma ya uthibitishaji huiangalia.

Isome kabla ya kuibadilisha. Ikiwa tayari inalingana na faili uliyohariri, tatizo haliko kwenye uhifadhi na nenda kwenye swali la wigo. Ikiwa inaonyesha toleo la zamani, mabadiliko hayakufika kwenye huduma.

./sacli -k auth.module.post_auth_script ConfigGet

Badilisha nakala iliyohifadhiwa, kisha itumie

Kufuta kabla ya kuandika si mapambo. ConfigPut pamoja na --value_file hubadilisha thamani kwa hatua moja, na kwanza ConfigDel hufanya isiwezekane kuacha kiingilio cha zamani au kilichoharibika. Hifadhi nakala ya skripti inayofanya kazi nje ya folda ya skripti kabla ya kuanza.

./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 hutumia usanidi uliobadilishwa kwenye huduma za ndani, na ndiyo hufanya skripti mpya kuanza kutumika. Hii si sawa na kuwasha upya mashine yote au daemon, na haipaswi kubadilishwa na hilo isipokuwa mabadiliko yako yanahitaji.

Tumia njia kamili kwa faili ya thamani na uthibitisha kwamba root anaweza kuisoma. Njia inayotatuliwa kutoka kwa shell yako lakini si kutoka kwa akaunti ya huduma hutoa thamani iliyohifadhiwa inayoonekana sawa katika ConfigGet na kushindwa kwenye kuingia kwa kwanza. Angalia tena matokeo yaliyohifadhiwa baada ya sacli start, si kabla.

Wigo wa moduli au kwa kila muunganisho: hoja inapaswa kuwa wapi

Python huendesha taarifa za ngazi ya moduli mara moja, skripti inapopakiwa. Kwa hiyo hoja ya hifadhidata iliyoandikwa juu ya faili husoma jedwali wakati wa kupakia na huhifadhi jibu hilo kwa kila muunganisho unaofuata. Hii ni sababu ya pili kwa nini mabadiliko yanaonekana hayafanyi chochote: msimbo unaendeshwa, lakini si wakati unaotarajia.

Weka hoja ndani ya kidhibiti post_auth ili iendeshwe kwa kila uthibitishaji. Hifadhi sahihi iliyoandikwa, rekebisha matokeo ya uthibitishaji ambayo kidhibiti hupokea, na urudishe kitu hicho hicho badala ya namba tupu.

Hifadhi pia usimamizi wa muunganisho ndani ya kidhibiti. Muunganisho unaofunguliwa wakati wa kuagiza unaweza kufungwa na seva kabla mtumiaji wa kwanza kuingia, na hitilafu inayotokea huonekana kama vitambulisho vilivyokataliwa badala ya skripti iliyovunjika.

Njia mbili za kukataa, mmiliki mmoja

Ikiwa uamuzi ni hoja ya ndani, kidhibiti cha Python kinamiliki matokeo. Ikiwa ni ukaguzi wa nje wa HTTP, acha hali ya kutoka ya amri ibebe jibu: kifuniko kinachotoka kwa msimbo usio sifuri hukataa kuingia, na hali ya amri ya mwisho inakuwa hali ya skripti bila exit iliyo wazi.

Weka siri nje ya orodha ya michakato. Faili inayosomwa na root au thamani ya mazingira inayopitishwa na huduma ni salama zaidi kuliko hoja ambayo mtumiaji yeyote wa ndani anaweza kuisoma kutoka ps. Funga kituo cha mwisho kwenye kigeugeu kabla ya wito, ili makosa ya kuandika yashindwe wakati wa usanidi na si wakati wa kuingia kwa mtu. Badilisha siri hiyo kama vitambulisho vingine vyovyote.

Chagua mmiliki mmoja kwa kila ukaguzi. Skripti inayouliza hifadhidata na kuita huduma ya HTTP inahitaji kanuni ya kipaumbele iliyotangazwa kwa hali ambayo zote mbili hazikubaliani, vinginevyo sababu ya kukataa kwenye kumbukumbu haitalingana na kile mtumiaji aliambiwa.

Itumie bila kumfunga nje msimamizi

Kinga mbili hufanya mabadiliko yaweze kurudishwa: akaunti ya pili ya msimamizi isiyotegemea skripti, na nakala nzuri inayojulikana iliyohifadhiwa nje ya folda ya skripti. Tumia mabadiliko katika kipindi cha matengenezo, kisha angalia kuingia kimoja cha jaribio na kukataa kimoja kwa makusudi kabla ya kukatwa. Ikiwa kumbukumbu inaonyesha hitilafu ya sintaksia badala ya uamuzi wa uthibitishaji, skripti iliyohifadhiwa imevunjika na kila kuingia kutashindwa.

Masharti mawili yanasema subiri: huwezi kusoma faili ya thamani kama root, au huna njia ya pili ya kuingia kwenye kiolesura cha usimamizi. Yote mawili hubadilisha mabadiliko madogo kuwa kufungwa nje, na hakuna hata moja inayofaa kujaribiwa kwenye seva ya uzalishaji mwisho wa siku. Nyaraka za Access Server zinashughulikia kiolesura cha post-auth na sehemu zinazoungwa mkono.

Makala zinazohusiana