கொண்டெய்னரில் vpnc பாதை-ஃபிளஷ் எச்சரிக்கை ஏன் தோன்றுகிறது
பாதை தற்காலிகச் சேமிப்பை ஃபிளஷ் செய்வது அந்தச் சேமிப்பை இனி வைத்திருக்காத கர்னலின் எஞ்சியதாகும்; படிக்க-மட்டும் பிழை சுரங்கப்பாதையிலிருந்து அல்ல, கொண்டெய்னரின் மவுண்ட்டிலிருந்து வருகிறது.
/proc/sys/net/ipv4/route/flush பற்றிய Read-only file system புகாருடன் புதிய கொண்டெய்னர் பதிவுகள் பெரும்பாலும் முடிவடைகின்றன, அந்த வரியே முழுமையாக ஆரோக்கியமாக இருக்கக்கூடிய சுரங்கப்பாதையின் மீது குற்றம் சாட்டப்படுகிறது. அதற்குப் பின்னால் உள்ள எழுத்து, IPv4 பாதை தற்காலிகச் சேமிப்பு மறைந்தபின் பயனுள்ள எதையும் செய்யாத கர்னல் உள்ளீட்டை இலக்காகக் கொள்கிறது. கொண்டெய்னருக்குள் /proc/sys படிக்க-மட்டும் என்று மவுண்ட் செய்யப்படுகிறது, எனவே எந்த மதிப்பும் வருவதற்கு முன்பே திருப்பிவிடல் நிராகரிக்கப்படுகிறது, ஷெல் அந்த நிராகரிப்பை அச்சிடுகிறது. வேலை செய்யும் சுரங்கப்பாதையும் பழைய வரி ஸ்கிரிப்ட்டில் இருக்கும் வரை இந்த எச்சரிக்கையை அச்சிடலாம், --privileged எழுத்தை என்றும் அர்த்தமுள்ளதாக்காது.
ஸ்கிரிப்ட் எதை ஃபிளஷ் செய்ய முயன்றது
பழைய இணைப்பு ஸ்கிரிப்ட்கள் தற்காலிகச் சேமிப்பு சுத்தம் செய்வதுடன் முடிந்தன: கர்னல் கட்டுப்பாட்டுக் கோப்பில் மதிப்பை எழுதி, IPv4 ஸ்டேக்கை அதன் வழித்தட தற்காலிகச் சேமிப்பை வீசச் சொல்வது, இதனால் பழைய உள்ளீடுகள் காலாவதியாகும் வரை காத்திருக்காமல் புதிய சுரங்கப்பாதை பாதை தேர்ந்தெடுக்கப்படும். கோப்பு /proc/sys/net/ipv4/ கீழ் முகவரியிடப்பட்டிருந்தது, இது செயலை வழித்தட கட்டளையாக அல்லாமல் ஷெல் திருப்பிவிடலாக மாற்றியது. கர்னல் 3.6 அந்தத் தற்காலிகச் சேமிப்பை நீக்கியது, அதனுடன் ஃபிளஷ் இருப்பதற்கான காரணத்தையும். தற்போதைய தரவுப் பாதையில் எதுவும் அந்த எழுத்தைச் சார்ந்திருக்கவில்லை.
உள்ளீடு தானே பழைய எழுத-மட்டும் கோப்பாக எஞ்சியது, எனவே இன்னும் அதில் எழுதும் ஸ்கிரிப்ட் உண்மையான பாதையையும் உண்மையான அனுமதிச் சரிபார்ப்பையும் அடைகிறது. ஹோஸ்ட்டில் எழுத்து வெற்றியைத் திருப்பித் தருகிறது, எதையும் மாற்றாது. கொண்டெய்னரில் அதே திருப்பிவிடல் படிக்க-மட்டும் /proc/sys உடன் மோதி EROFS உடன் தோல்வியடைகிறது, அதை ஷெல் படிக்க-மட்டும் கோப்பு முறைமைச் செய்தியாக அச்சிடுகிறது. பாதை உண்மையில் இல்லாத கர்னல்களில் சொற்றொடர் No such file or directory ஆகிறது, முடிவு மாறாது.
இரு பிழைகளும் வெவ்வேறு விஷயங்களைச் சொல்கின்றன, வேறுபாட்டைத் தெளிவாக வைத்திருப்பது மதிப்புள்ளது. Read-only file system என்பது கர்னல் ஒரு உள்ளீட்டை அடைந்து எழுத்தை நிராகரித்தது; No such file or directory என்பது உள்ளீடு போய்விட்டது. எந்தச் செய்தியும் சுரங்கப்பாதை சாதனம், பாதைகள் அல்லது பெயர் தீர்வு பற்றிப் புகாரளிக்கவில்லை, எனவே எதுவும் கூடுதல் சிறப்புரிமையை நியாயப்படுத்த முடியாது.
செய்தியை காரணமாகத் தெரியவைப்பது வரிசையே. இணைப்பு ஸ்டிரிப்ட் இறுதியில் உள்ள சுத்தத்தை அடையும் முன் பாதைகளை நிறுவி, இடைமுக நிலையை மாற்றி, பெயர் தீர்வை மீண்டும் எழுதுகிறது, எனவே இறுதியில் அச்சிடப்பட்ட வரியே மக்கள் மேற்கோள் காட்டும் வரி, முக்கியமான ஒவ்வொரு படியும் வெற்றி தந்தாலும். இந்த எச்சரிக்கையை அச்சிட்டுக்கொண்டே நிறுவப்பட்டு போக்குவரத்தைச் சுமக்கும் சுரங்கப்பாதை மேலே உள்ள இயங்குமுறையுடன் சரியாகப் பொருந்துகிறது.
சிறப்புரிமையைச் சேர்ப்பதற்கு முன் மவுண்ட்டையும் பாதையையும் சரிபார்க்கவும்
மூன்று வாசிப்புகள் மேலோட்டமான எச்சரிக்கையை உண்மையான தோல்வியிலிருந்து பிரிக்கின்றன: நிறுவப்பட்ட ஸ்கிரிப்ட் இன்னும் வரியைக் கொண்டிருக்கிறதா, /proc/sys எப்படி மவுண்ட் செய்யப்பட்டுள்ளது, மற்றும் பயன்பாட்டின் போக்குவரத்து உண்மையில் எங்கே செல்கிறது. எச்சரிக்கை தோன்றிய அதே கொண்டெய்னர் பெயர்வெளியில் அல்லது ஹோஸ்ட்டில் அவற்றை இயக்கவும், ஏனெனில் தொடர்பில்லாத இயந்திரத்தில் சரிபார்ப்பது வேறு கேள்விக்குப் பதிலளிக்கும்.
grep -n 'ipv4/route/flush' /usr/share/vpnc-scripts/vpnc-script
findmnt -no OPTIONS /proc/sys
ip -4 route get 10.20.5.10grep இன் பதில் தோற்றத்தைவிட பலவீனமானது, ஏனெனில் கிடைப்பது வரி இருப்பதை நிரூபிக்கிறது, பாதுகாப்பின்றி இயங்குவதை அல்ல; பராமரிக்கப்படும் ஸ்கிரிப்ட் எழுத்தை அதைத் தவிர்க்கும் காவலுக்குள் வைத்திருக்கலாம். findmnt -no OPTIONS /proc/sys மவுண்ட்டை நேரடியாகத் தீர்க்கிறது, அந்த வெளியீட்டில் ro என்பது அந்தப் புள்ளிக்குக் கீழே உள்ள ஒவ்வொரு எழுத்தும் நிராகரிக்கப்படும் என்பதாகும், ஸ்கிரிப்ட் எதைச் செய்தாலும். பின்னர் பாதைத் தேடல், பயன்பாட்டுக்குத் தேவையான இலக்கு சுரங்கப்பாதை இடைமுகம் வழியாகவா கொண்டெய்னரின் இயல்புநிலை நுழைவாயில் வழியாகவா தீர்க்கப்படுகிறது என்பதைக் காட்டுகிறது. இயல்புநிலை நுழைவாயிலைத் தேர்ந்தெடுக்கும் தேடல், சுரங்கப்பாதை எழுந்தது, அதில் எதுவும் வழிப்படுத்தப்படவில்லை என்பதாகும், இது வழித்தடச் சிக்கல், சிறப்புரிமைச் சிக்கல் அல்ல.
சரிசெய்தல் உண்மையில் எங்கிருந்து வருகிறது
பராமரிக்கப்படும் சரிசெய்தல் கொண்டெய்னர் கொடிகளில் அல்ல, ஸ்கிரிப்ட்டில் வாழ்கிறது. upstream vpnc-script இந்தச் செயலை எப்படிக் கையாள்கிறது என்பதை மாற்றியுள்ளது, எனவே படிமத்துக்குள் உள்ள நகலை தற்போதைய upstream உடன் ஒப்பிட்டு, அதை வழங்கும் தொகுப்பு அல்லது படிம கட்டுமானம் வழியாகப் புதுப்பிக்கவும். இயங்கும் கொண்டெய்னருக்குள் கையால் திருத்தப்பட்ட கோப்பு மறுஆய்வு செய்ய முடியாதது, அடுத்த கட்டுமானம் வரை நிலைக்காது.
--privileged அனைத்து திறன்களையும் பரந்த சாதன அணுகலையும் வழங்குவதாக ஆவணப்படுத்தப்பட்டுள்ளது, எதையும் மாற்றாத செய்திக்கு இது பெரிய சலுகை, எனவே உண்மையில் ஒரு திறன் இல்லாவிட்டால் அதைப் பெயரிடுங்கள். புதுப்பிப்புக்குப் பிறகு பாதைத் தேடலை மீண்டும் செய்து, ஒரு பயன்பாட்டைச் சுரங்கப்பாதையைப் பயன்படுத்த விடுங்கள், ஏனெனில் அமைதியான பதிவும் வேலை செய்யும் இணைப்பும் தனித்தனி முடிவுகள்.