வட்டு மறையாக்கமும் nosuid மவுண்டும் ஒரே கருத்தின் வடிவங்களாகத் தோன்றுகின்றன, ஆனால் அவற்றுக்கு எந்தத் தொடர்பும் இல்லை. ஒன்று ஓய்வில் உள்ள தரவைப் பாதுகாக்கிறது, மற்றொன்று நிரல் தொடங்கும் தருணத்தில் கர்னல் சிறப்புரிமை பிட்டை மதிக்குமா என்பதைத் தீர்மானிக்கிறது. தான் எதிர்பார்க்கும் அடையாளத்தை அடையாத உதவியாளர் இரண்டாவதைப் பற்றிப் புகார் சொல்கிறது. முதல்தான் காரணம் என்ற அனுமானம் மக்களை ஒருபோதும் பழுதடையாத வாடிக்கையாளர்களை மீண்டும் நிறுவச் செலுத்துகிறது.

தொடர்பில்லாத இரண்டு பண்புகள்

இயந்திரம் அணைந்திருக்கும்போது தொகுதிகளை யார் படிக்கலாம் என்பதற்கு வட்டு மறையாக்கம் பதிலளிக்கிறது. யாராவது ஒரு கோப்பை இயக்கும்போது கர்னல் அதன் பயன்முறை பிட்டுகளுடன் என்ன செய்யும் என்பதற்கு மவுண்ட் விருப்பம் பதிலளிக்கிறது. முதலில் எதுவும் இரண்டாவதைக் கட்டுப்படுத்தவில்லை, மேலும் முழுமையாக மறையாக்கப்பட்ட மடிக்கணினி அனைத்துக் கட்டுப்பாடுகளுடனும் ஒரு கோப்பு முறைமையை மவுண்ட் செய்ய முடியும்.

இரண்டையும் ஒரே பண்பாகப் படிப்பதே மறையாக்கப்பட்ட முகப்பு கோப்பகம் root அணுகலைத் தடுக்கிறது என்ற கோட்பாட்டை உருவாக்குகிறது. அந்தக் கோட்பாடு நிலைத்திருப்பது இரண்டு அறிகுறிகளும் ஒரே இயந்திரத்தில் தோன்றுவதால், அவற்றுக்கு ஒரே காரணம் இருப்பதால் அல்ல.

மாற்றத்தை உண்மையில் எது அடக்குகிறது

set-user-ID கொண்ட இயக்கக்கூடிய கோப்பு புதிய செயல்முறையின் செயல்படும் அடையாளத்தைக் கோப்பின் உரிமையாளராக எவ்வாறு மாற்றுகிறது என்பதை execve குறிப்பு விவரிக்கிறது. அதே பக்கத்தில் அந்த மாற்றத்தை அடக்கும் நிபந்தனைகளும் குழு அடையாளங்காட்டிகளுக்கான அவற்றின் இணையும் பட்டியலிடப்பட்டுள்ளன: no_new_privs அமைப்பு, nosuid உடன் மவுண்ட் செய்யப்பட்ட கோப்பு முறைமை, மற்றும் கண்காணிக்கப்படும் செயல்முறை. அதே நிபந்தனைகளில் கோப்பு திறன்கள் புறக்கணிக்கப்படுகின்றன. அந்த நான்கு விதிகளும் இத்தகைய கிட்டத்தட்ட ஒவ்வொரு அறிக்கையையும் உள்ளடக்குகின்றன.

ls அச்சிடும் பயன்முறை ஒருபோதும் முழு அனுமதிக் கதை அல்ல என்பதை அந்தப் பட்டியல் விளக்குகிறது. எந்த நிபந்தனை ஒரு குறிப்பிட்ட தோல்விச் செய்தியை உருவாக்கியது என்பதை அது சொல்லாது, மேலும் பயன்பாடு அதே சொற்களில் தொடர்பில்லாத சான்றளவு செயல்பாட்டைப் பற்றி அறிவிக்கலாம். முடிவுக்கு வரும் முன் சரியான நிரல், துவக்கி மற்றும் பிழை வரிசையைப் பதிவு செய்யுங்கள்.

ஆதரவு பெற்ற தொகுப்பு நிறுவிய இயக்கக்கூடிய கோப்பு, அதன் உரிமையாளர், அதன் உண்மையான பாதை மற்றும் அதைக் கொண்டுள்ள கோப்பு முறைமையின் கொள்கை ஆகியவற்றைக் கண்டறியுங்கள். பதிவிறக்கக் கோப்பகத்தில் உள்ள நகல் நிறுவப்பட்ட உதவியாளர் அல்ல, அதன் பயன்முறை என்ன சொன்னாலும்.

இதைப் பற்றி என்ன செய்யக்கூடாது

சரிபார்க்கப்படாத பைனரியில் set-user-ID பிட்டுகளை வைத்து, கட்டுப்பாடு மறையும் வரை அதை இங்கும் அங்கும் நகர்த்துவது பழுதுநீக்கம் அல்ல. அது உங்களுக்குப் புரியாத கொள்கையை நீங்கள் தணிக்கை செய்ய முடியாத சிறப்புரிமையால் மாற்றுகிறது, மேலும் உதவியாளருக்கு அதே நுட்பத்தைப் பயன்படுத்துவது அறியப்பட்ட உரிமை உயர்வுப் பாதையாகும். மவுண்டில் இருந்து nosuid ஐ அகற்றுவது இன்னும் மோசம், ஏனெனில் அது அந்தக் கோப்பு முறைமையின் ஒவ்வொரு நிரலையும் பாதிக்கிறது, ஒன்றை மட்டும் அல்ல.

ஆதரவு பெற்ற வழி என்பது நிர்வாகி செய்யும் வாடிக்கையாளரின் ஆவணப்படுத்தப்பட்ட உதவியாளர் அல்லது சேவை நிறுவல் ஆகும், அது பைனரியைக் கொள்கை எதிர்பார்க்கும் இடத்தில் வைக்கிறது. இதனால் இரண்டுக்குப் பதிலாக ஒரே சிறப்புரிமை முறைமை நீடிக்கிறது.

உண்மையான துவக்கச் சூழலை உறுதிப்படுத்துங்கள்

அங்கீகரிக்கப்பட்ட திருத்தத்திற்குப் பிறகு உதவியாளரை root ஷெல்லில் இருந்து அல்ல, தயாரிப்பு இயக்கும் விதத்திலேயே இயக்குங்கள். root ஆக வெற்றி பெறுவது சாதாரண பயனர் செல்லும் பாதையைப் பற்றி எதையும் நிரூபிக்காது, மேலும் இந்த இரண்டு சூழல்களுக்கு இடையிலான வேறுபாடே தோல்வியின் உண்மையான பொருள்.

பின்னர் உதவியாளர் எதற்காக உள்ளதோ அந்த வலையமைப்புச் செயல்பாட்டை உறுதிப்படுத்துங்கள். தொடங்கி ஆனால் இடைமுகத்தை உள்ளமைக்க முடியாத உதவியாளர் சிக்கலை ஒரு கட்டம் முன்னே நகர்த்தியுள்ளது, தீர்க்கவில்லை.

findmnt -no TARGET,OPTIONS /home
getcap /usr/libexec/openvpn-helper 2>/dev/null; ls -l /usr/libexec/openvpn-helper

மவுண்ட் விருப்பங்களையும் உதவியாளரின் உரிமையையும் ஒரே குறிப்பில் பதிவு செய்யுங்கள். இல்லையெனில் இதைப் பிழைதிருத்தும் அடுத்த நபர் மறையாக்கக் கோட்பாட்டை மீண்டும் தொடக்கத்திலிருந்து திருப்பிச் சொல்வார்.

தொடர்புடைய கட்டுரைகள்