சேவை தோல்வியடைகிறது, பதிவுகள் spawn மற்றும் ஒரு கோப்பகத்தைக் குறிப்பிடுகின்றன, முதல் உணர்வு VPN கட்டமைப்பைச் சரிபார்ப்பதாக இருக்கும். அந்தக் கோப்பிலிருந்து இன்னும் எதுவும் படிக்கப்படவில்லை. systemd செயல்முறையைத் தயாரிக்கும்போது, இயக்கக்கூடிய கோப்பு இயங்குவதற்கு முன்பே தோல்வியடைந்தது, எனவே எந்த parser, எந்தச் சான்றிதழ் மற்றும் எந்தத் தொலை ஹோஸ்டும் கேட்கப்படவில்லை. நிலைக் குறியீட்டை OpenVPN பற்றிய அறிக்கையாக அல்லாமல் systemd பற்றியதாகப் படிப்பதே இதைக் குறுகிய விசாரணையாக மாற்றுகிறது.

பயன்பாட்டிற்கு முன் நிலைக் குறியீட்டைப் படியுங்கள்

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

இந்த வேறுபாடு முக்கியம், ஏனெனில் திருத்தங்கள் வெவ்வேறு கோப்புகளில் உள்ளன. CHDIR தோல்வி ஒரு பாதை மற்றும் சேவை அதை எவ்வாறு பார்க்கிறது என்பதைப் பற்றியது. Exec தோல்வி பைனரி, அதன் மொழிபெயர்ப்பான் அல்லது தொடர்பில்லாத mount பற்றியது. VPN-இன் தொலை இடம், சைஃபர் பட்டியல் அல்லது சான்றிதழின் பாதையை மாற்றுவதால் இவற்றில் எதையும் சரிசெய்ய முடியாது.

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

unit-ஐ எங்கே இருக்க விரும்புகிறது என்று கேளுங்கள்

நிறுவப்பட்டதாக நீங்கள் நினைக்கும் கோப்பை அல்ல, செயலில் உள்ள unit-ஐப் படியுங்கள், ஏனெனில் drop-in கோப்புகள் முதன்மை unit-ஐ ஒருபோதும் திருத்தாமலேயே பணிக் கோப்பகத்தை மேலெழுதலாம். show-இன் வெளியீடு கேள்விக்கு நேரடியாகப் பதிலளிக்கிறது:

systemctl cat [email protected]
systemctl show [email protected] -p WorkingDirectory -p RootDirectory -p User -p ProtectHome
journalctl -u [email protected] -b --no-pager | tail -30

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

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

பாதையை சேவை பார்க்கும் விதத்தில் சரிபாருங்கள்

உங்கள் shell-ம் சேவையும் கோப்பு முறைமையின் ஒரே பார்வையைப் பகிரவில்லை. கட்டமைக்கப்பட்ட வேர் கோப்பகம் அல்லது root image unit-க்குள் முழுமையான பாதையின் பொருளை மாற்றுகிறது, ஹோஸ்டில் வெளிப்படையாக உள்ள பாதை அந்தப் பெயரிடத்தில் இல்லாமல் இருக்கலாம். கைமுறைச் சோதனையை நம்புவதற்கு முன் unit-இன் அமைப்புகளைப் படியுங்கள்.

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

namei -l /etc/openvpn/server
systemctl show [email protected] -p ProtectSystem -p ReadOnlyPaths

கடினப்படுத்தல் அமைப்புகளும் இந்தப் படத்தின் பகுதி. முகப்பு கோப்பகங்களை மறைக்கும் அல்லது கோப்பு முறைமையின் ஒரு பகுதியை படிக்க-மட்டும் ஆக்கும் unit தனக்கு கட்டமைக்கப்பட்டதைச் செய்கிறது, பணிக் கோப்பகம் sandbox இன்னும் அதை வெளிப்படுத்தும் இடத்தில் இருக்க வேண்டும்.

உரிமையாளரைச் சரிசெய்து, பிறகு வேறு பிழையை எதிர்பாருங்கள்

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

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

இன்ஸ்டன்ஸை மீண்டும் தொடங்கி, வெற்றியை ஊகிப்பதற்குப் பதிலாக அடுத்த நிகழ்வைப் படியுங்கள். அடுத்த சாத்தியமான பிழை OpenVPN தன் கட்டமைப்புக் கோப்பைத் திறக்க முடியாதது, இது முன்னேற்றம்: பணிக் கோப்பகத்திற்குள் நுழைந்தோம், parser இப்போது இயங்குகிறது. அங்கிருந்து unit-இன் உண்மையான கோப்பு மேப்பிங்கைப் பின்பற்றுங்கள், வலைப்பிணைய சிக்கல் தீர்வுக்குத் திரும்ப வேண்டாம்.

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

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