டெர்மினலை மூடும்போது AnyConnect துண்டிக்கப்படும்: அமர்வு சரிபார்ப்புகள்
Linux AnyConnect வாடிக்கையாளர் இணைக்கும்போது திறந்திருந்த உள்நுழைவு அமர்வுகளை நினைவில் வைத்து, அவற்றில் ஒன்று மூடப்பட்டால் சுரங்கத்தை துண்டிக்கிறது. utmp ஐ மீண்டும் எழுதுவதற்கு முன் வரிசையைச் சரிபார்க்கவும்.
சுரங்கம் இயங்குகிறது, ஒரு கூடுதல் டெர்மினலை மூடுகிறீர்கள், வாடிக்கையாளரில் ஒரு விசையும் அழுத்தாமலேயே VPN கீழே போகிறது. Linux AnyConnect வாடிக்கையாளரில் தெரிவிக்கப்படும் காரணம் வழிமாற்றம் அல்ல, அமர்வு கணக்கியல்: சுரங்கம் மேலெழும்போது எந்த உள்நுழைவு அமர்வுகள் இருந்தன என்பதை வாடிக்கையாளர் பதிவு செய்து, அவற்றில் ஏதேனும் ஒன்று முடிவதை அதைத் தகர்ப்பதற்கான காரணமாகக் கருதுகிறது. கீழேயுள்ள சரிபார்ப்புகள் வரிசையாக நடக்கின்றன, முதல் ஒன்று தோல்வியடைந்தால் நீங்கள் இந்த நடத்தையைப் பார்க்கிறீர்களா என்பதைத் தெரிவிக்கும். வாடிக்கையாளரின் வழக்கமான வெளியீட்டில் டெர்மினலைப் பற்றி எதுவும் இல்லை, அதனால் முதலில் செறிவூட்டியைக் குறை கூறுவது பொதுவாக வீண் உழைப்பு.
கணினி கோப்புகளைத் திருத்துவதில் தொடங்க வேண்டாம். ஒவ்வொரு படியும் துண்டிப்பை விளக்குகிறது அல்லது ஒரு சாத்தியத்தை நீக்குகிறது, மலிவான படிகள் முதலில் வரும்.
அமர்வு துண்டிப்பை அடிப்படை அடுக்கு துண்டிப்பிலிருந்து பிரிக்கவும்
துண்டிப்புக்குப் பிறகு உடனடியாக மீண்டும் இணைக்கவும். அதே வலையமைப்பில், புதிய சான்றுகள் இல்லாமல், சில வினாடிகளில் திரும்பி வரும் சுரங்கம் இறந்த மேல்இணைப்பு, Wi-Fi நகர்வு அல்லது செறிவூட்டியின் செயலற்ற நேர வரம்பு அல்ல, மூடப்பட்ட அமர்வு போன்ற உள்ளூர் தூண்டுதலைக் குறிக்கிறது. Connecting இல் தொங்கும் அல்லது வலையமைப்பை மாற்றும் வரை தோல்வியடையும் சுரங்கம் வேறு கட்டுரை.
சுரங்கம் மேலெழும்போது எது திறந்திருந்தது என்று எழுதி வைக்கவும்: வாடிக்கையாளரை இயக்கிய டெர்மினல், ஏதேனும் இரண்டாவது ஷெல், வரைகலை உள்நுழைவு, மற்றொரு கணினியிலிருந்து வந்த ஏதேனும் SSH அமர்வு. அந்தப் பட்டியல் சிறிது நேரத்தில் தேவைப்படும், அடுத்த துண்டிப்புக்குப் பிறகு நினைவிலிருந்து அதை மீண்டும் கட்டியெழுப்புவது நம்பகமானதல்ல.
இணைந்த நேரத்தில் வாடிக்கையாளர் என்ன பதிவு செய்தது என்பதைச் சரிபார்க்கவும்
வாடிக்கையாளர் செயல்முறை பெற்றோர் அல்லது டெர்மினல் உரிமையை ஆராய்வதில்லை. இணைந்த நேரத்தில் இருந்த உள்நுழைவு அமர்வுகளின் தொகுப்பைப் படம்பிடித்து, பின்னர் அதே தொகுப்பை ஒப்பிடுகிறது; ஒரு உறுப்பினர் மறைந்தால் ஒப்பீடு தோல்வியடைந்து சுரங்கமும் அதனுடன் போகிறது. அதனால்தான் நீங்கள் இணைந்த சாளரத்தை மூடுவது பாதிப்பில்லாததாக இருக்கலாம், ஆனால் தொடர்பில்லாத கூடுதல் டெர்மினலை மூடுவது இணைப்பைக் கொல்லும்: அந்த அமர்வு மூல தொகுப்பில் இருந்ததா என்பதே முக்கியம். இது எண்ணிக்கை அல்ல, தொகுப்பு ஒப்பீடு, எனவே ஒரு அமர்வை மாற்றுவதும் ஒன்றை இழப்பதைப் போலவே அபாயகரமானது.
எதையும் மாற்றும் முன் வாடிக்கையாளர் பார்க்கக்கூடியதைப் பட்டியலிடுங்கள்:
who
w
last -n 10
sudo ls -l /run/utmpwho இலிருந்து வரும் ஒவ்வொரு வரியும் utmp இல் ஒரு பயனர் செயல்முறைப் பதிவு. உங்கள் அமர்வு இருமுறை தோன்றினால், ஒன்று வரைகலை உள்நுழைவுக்கு, ஒன்று டெர்மினலுக்கு, இரண்டு பதிவுகளும் இணைந்த நேரத்தில் இருந்தன, இரண்டும் வேட்பாளர்கள்.
utmp இலிருந்து உங்கள் சொந்தப் பதிவை மட்டும் நீக்கவும்
வெளியிடப்பட்ட தீர்வு நீங்கள் பயன்படுத்தப்போகும் அமர்வை வாடிக்கையாளர் தொடங்கும் முன் utmp இல் கண்ணுக்குத் தெரியாததாக்குகிறது. ஒரு சிறிய C நிரல் getutent() வழியாகச் சென்று, ut_line நிலையான உள்ளீட்டின் TTY க்கு சமமான பதிவைக் கண்டுபிடித்து, அந்தப் பதிவை மீண்டும் எழுதுகிறது. வரிசை வேண்டுமென்றே: setutent(), பதிவைப் படி, அதன் ut_id ஐ நகலெடு, ut_type ஐ DEAD_PROCESS ஆக அமை, பயனர் மற்றும் வரி புலங்களை அழி, pututline() மூலம் மீண்டும் எழுது, பின்னர் endutent().
அதைத் தொகுத்து, பின்னர் வாடிக்கையாளரைத் தொடங்கும் ஷெல்லிலிருந்து root ஆக இயக்கவும்:
sudo ./utmpremove && /opt/cisco/anyconnect/bin/vpn -s connect vpn.example.eduகருவி எதுவும் செய்யவில்லை என்ற பெரும்பாலான புகார்களுக்கு இரண்டு தோல்வி முறைகள் காரணம். இது நிலையான உள்ளீட்டுடன் இணைக்கப்பட்ட TTY இல் செயல்படுகிறது, எனவே டெர்மினல் இல்லாத ஸ்கிரிப்ட் அல்லது cron வேலையிலிருந்து இயக்கினால் பொருத்த எதுவும் மிச்சமிராது. மேலும் /run/utmp சாதாரண பயனர்களுக்கு எழுதக்கூடியதல்ல, எனவே root இல்லாத இயக்கம் வெளியேறும் நிலையைச் சரிபார்க்காவிட்டால் அமைதியாகத் தோல்வியடையும்.
சுரங்கம் மூடுவதைத் தாங்குகிறதா எனச் சரிபார்க்கவும்
இயங்குமுறையை ஊகிக்காமல் சோதிக்கவும். நீங்கள் வைத்திருக்க விரும்பும் அமர்விலிருந்து இணைந்து, இரண்டாவது டெர்மினலைத் திறந்து, இரண்டாவதை மூடி, பின்னர் vpn state மற்றும் இடைமுகப் பட்டியலைப் பார்த்து சுரங்கம் இன்னும் மேலே இருப்பதை உறுதிப்படுத்தவும். சுரங்கம் தப்பிப்பிழைத்தால், தூண்டுதல் ஒவ்வொரு அமர்வும் அல்ல, குறிப்பிட்ட அமர்வு வகை, திறந்திருக்க வேண்டிய அமர்வைக் கண்டுபிடித்தீர்கள்.
இன்னும் துண்டிக்கப்பட்டால், கண்காணிக்கப்பட்ட அமர்வு வேறு இடத்தில் இருந்தது, பெரும்பாலும் உங்கள் டெர்மினலை உருவாக்கிய வரைகலை உள்நுழைவு, ஒரு TTY பதிவை அகற்றுவது உதவாது. மேலும் அறுவை சிகிச்சை செய்வதற்குப் பதிலாக முதல் படியின் முழுப் பட்டியலுடன் கண்காணிப்பை மீண்டும் செய்யவும்.
utmp மீண்டும் எழுதுவது தவறான பதில் எப்போது
utmp பகிரப்பட்ட கணக்கியல், தனிப்பட்ட அட்டவணை அல்ல. இன்னும் உயிருடன் இருக்கும் அமர்வின் பதிவை மீண்டும் எழுதுவது who, w மற்றும் சில தணிக்கைக் கருவிகள் அதைக் குறைவாகப் புகாரளிக்கச் செய்யும், பின்னர் அதே பதிவை மூடும் நிரல் முற்றிலும் தோல்வியடையலாம். கருவியை உங்கள் சொந்த அமர்வுக்கு மட்டும் வரம்பிடுங்கள், மூலக் கோப்பின் நகலை வைத்திருங்கள், ஒவ்வொரு பதிவையும் அகற்றும் துவக்கச் சேவையாக அதை மாற்ற வேண்டாம்.
உங்கள் நிறுவனம் இணக்கத்திற்காக அமர்வு கணக்கியலைச் சேகரித்தால், இந்தத் தீர்வு அந்தத் தேவைக்கு முரணானது, ஆதரிக்கப்படும் பதில் வாடிக்கையாளர் பதிப்பு அல்லது வேறு அணுகல் முறை, இணைக்கப்பட்ட utmp அல்ல. பெரும்பாலானோருக்கு குறைந்த தலையீட்டுத் தீர்வு, நாள் முழுவதும் திறந்திருக்கும் அமர்விலிருந்து வாடிக்கையாளரைத் தொடங்கி அந்தச் சாளரத்தைத் தொடாமல் விடுவதே.
டிக்கெட்டை மூடும் முன், சுரங்கம் மேலெழும்போது வாடிக்கையாளர் எந்த அமர்வைக் கண்காணித்தது என்று பதிவு செய்யுங்கள். அந்த ஒரு வரியே மர்மமான துண்டிப்பை இயந்திரத்தில் அடுத்த நபருக்கு மீள்செய்யக்கூடிய நிலையாக மாற்றுகிறது.