நீங்கள் வட்டில் திருத்திய post_auth ஸ்கிரிப்டை Access Server புறக்கணிக்கிறது
வட்டில் உள்ள post_auth கோப்பைத் திருத்துவதால் எதுவும் நடக்காது: Access Server அதன் உள்ளமைவு தரவுத்தளத்தில் உள்ள நகலை இயக்குகிறது. முடிவுப் பாதையையும் sacli கட்டளைகளையும் பின்பற்றுங்கள்.
எதையும் மாற்றாத திருத்தப்பட்ட 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 startsacli start மாற்றப்பட்ட உள்ளமைவை உள் சேவைகளுக்குப் பயன்படுத்துகிறது, அதுவே புதிய ஸ்கிரிப்டை நடைமுறைக்கு வரச் செய்கிறது. இது முழு இயந்திரத்தையோ டீமனையோ மறுதொடக்கம் செய்வதற்கு சமம் அல்ல, உங்கள் மாற்றத்திற்கு அது தேவைப்படாவிட்டால் அதைக் கொண்டு மாற்றக்கூடாது.
மதிப்புக் கோப்பிற்கு முழுமையான பாதையைப் பயன்படுத்தி root அதைப் படிக்க முடியும் என்பதை உறுதிப்படுத்துங்கள். உங்கள் ஷெல்லில் இருந்து தீர்க்கப்படும் ஆனால் சேவைக் கணக்கில் இருந்து தீர்க்கப்படாத பாதை, ConfigGet இல் சரியாகத் தெரிந்து முதல் உள்நுழைவில் தோல்வியடையும் சேமிக்கப்பட்ட மதிப்பை உருவாக்குகிறது. sacli start க்குப் பிறகு சேமிக்கப்பட்ட முடிவை மீண்டும் ஒருமுறை சரிபாருங்கள், அதற்கு முன் அல்ல.
தொகுதி பரப்பளவா அல்லது ஒவ்வொரு இணைப்பிற்குமா: வினவல் எங்கே இருக்க வேண்டும்
Python தொகுதி நிலைக் கூற்றுகளை ஸ்கிரிப்ட் ஏற்றப்படும்போது ஒருமுறை இயக்குகிறது. எனவே கோப்பின் மேலே எழுதப்பட்ட தரவுத்தள வினவல் ஏற்றும்போது அட்டவணையைப் படித்து அந்தப் பதிலை அடுத்தடுத்த ஒவ்வொரு இணைப்பிற்கும் வைத்திருக்கிறது. மாற்றம் எதுவும் செய்யாதது போல் தோன்றுவதற்கான இரண்டாவது காரணம் இதுவே: குறியீடு இயங்குகிறது, ஆனால் நீங்கள் எதிர்பார்க்கும் நேரத்தில் அல்ல.
ஒவ்வொரு அங்கீகாரத்திற்கும் இயங்கும் வகையில் வினவலை post_auth கையாளியின் உள்ளே வையுங்கள். ஆவணப்படுத்தப்பட்ட கையொப்பத்தை வைத்திருங்கள், கையாளி பெறும் அங்கீகார முடிவைச் சரிசெய்து, வெறும் எண்ணுக்குப் பதிலாக அதே பொருளைத் திருப்பித் தாருங்கள்.
இணைப்பு கையாளுதலையும் கையாளியின் உள்ளே வையுங்கள். இறக்கும்போது திறக்கப்படும் இணைப்பை முதல் பயனர் உள்நுழைவதற்கு முன் சேவையகம் மூடலாம், அதனால் ஏற்படும் பிழை உடைந்த ஸ்கிரிப்ட் போல் அல்ல, நிராகரிக்கப்பட்ட சான்றுகள் போல் தெரிகிறது.
நிராகரிப்பின் இரு பாதைகள், ஒரு உரிமையாளர்
முடிவு உள்ளூர் வினவலாக இருந்தால், முடிவின் உரிமையாளர் Python கையாளி. அது வெளிப்புற HTTP சரிபார்ப்பாக இருந்தால், கட்டளையின் வெளியேறு நிலை பதிலைச் சுமக்கட்டும்: பூஜ்ஜியம் அல்லாத குறியீட்டுடன் வெளியேறும் உறை உள்நுழைவை நிராகரிக்கிறது, கடைசி கட்டளையின் நிலையே வெளிப்படையான exit இல்லாமல் ஸ்கிரிப்டின் நிலையாகிறது.
ரகசியத்தை செயல்முறை பட்டியலுக்கு வெளியே வையுங்கள். root படிக்கக்கூடிய கோப்பு அல்லது சேவை அனுப்பும் சூழல் மதிப்பு, எந்த உள்ளூர் பயனரும் ps இல் இருந்து படிக்கக்கூடிய வாதத்தை விட பாதுகாப்பானது. அழைப்பிற்கு முன் முடிவுப் புள்ளியை மாறியில் பொருத்துங்கள், தட்டச்சுப் பிழை உள்ளமைவின் போது தோல்வியடையட்டும், யாரோ உள்நுழையும் போது அல்ல. அந்த இரகசியத்தை மற்ற சான்றுகளைப் போலவே சுழற்றுங்கள்.
ஒவ்வொரு சரிபார்ப்பிற்கும் ஒரு உரிமையாளரைத் தேர்ந்தெடுங்கள். தரவுத்தளத்தைக் கேட்டு HTTP சேவையையும் அழைக்கும் ஸ்கிரிப்டுக்கு, இரண்டும் முரண்படும் நிலைக்கு அறிவிக்கப்பட்ட முன்னுரிமை விதி தேவை, இல்லையெனில் பதிவில் உள்ள நிராகரிப்புக் காரணம் பயனருக்குச் சொன்னதுடன் பொருந்தாது.
நிர்வாகியைப் பூட்டாமல் பயன்படுத்துங்கள்
இரு பாதுகாப்புகள் மாற்றத்தை மீளக்கூடியதாக்குகின்றன: ஸ்கிரிப்டைச் சாராத இரண்டாவது நிர்வாகக் கணக்கு, மற்றும் ஸ்கிரிப்ட் கோப்பகத்திற்கு வெளியே வைக்கப்பட்ட அறியப்பட்ட நல்ல நகல். பராமரிப்பு நேரத்தில் மாற்றத்தைப் பயன்படுத்தி, பின்னர் துண்டிக்கும் முன் ஒரு சோதனை உள்நுழைவையும் ஒரு வேண்டுமென்றே நிராகரிப்பையும் பாருங்கள். பதிவு அங்கீகார முடிவுக்குப் பதிலாக இலக்கணப் பிழையைக் காட்டினால், சேமிக்கப்பட்ட ஸ்கிரிப்ட் உடைந்துள்ளது, ஒவ்வொரு உள்நுழைவும் தோல்வியடையும்.
இரு நிபந்தனைகள் காத்திருங்கள் என்கின்றன: root ஆக மதிப்புக் கோப்பைப் படிக்க முடியவில்லை, அல்லது நிர்வாக இடைமுகத்திற்கு இரண்டாவது வழி இல்லை. இரண்டும் சிறிய மாற்றத்தைப் பூட்டாக மாற்றுகின்றன, நாளின் இறுதியில் உற்பத்தி சேவையகத்தில் சோதிக்க எதுவும் தகுதியில்லை. Access Server ஆவணங்கள் post-auth இடைமுகத்தையும் அதன் ஆதரவு புலங்களையும் உள்ளடக்குகின்றன.