VPN बटन एडमिनिस्ट्रेटर के लिए काम करता है और बाकी सबके लिए विफल हो जाता है, इसलिए कोई sudoers में एक पंक्ति जोड़ देता है। वह पंक्ति आमतौर पर उस समस्या से अधिक जीती है जिसे हल करने के लिए वह बनी थी, और अक्सर बटन की ज़रूरत से अधिक अधिकार दे देती है। नीति संपादित करने से पहले जाँचें कि समर्थित कनेक्शन का मालिक यह काम पहले से कर सकता है या नहीं। नीचे दी गई तीन शर्तें तय करती हैं कि sudo शामिल है या नहीं।

शर्त 1: समर्थित मालिक इसे sudo के बिना कर सकता है

अधिकांश Linux डेस्कटॉप पर नेटवर्क मैनेजर पहले से ही VPN कनेक्शन का मालिक होता है, और उसका प्राधिकरण sudo के बजाय polkit से होकर जाता है। जिस उपयोगकर्ता को कनेक्शन ऊपर लाने की अनुमति है, वह कमांड लाइन से बिना किसी root नियम के ऐसा कर सकता है। यह मानने से पहले कि बटन को विशेषाधिकार चाहिए, जाँचें कि मैनेजर क्या अनुमति देता है। यदि उत्तर हाँ है, तो sudoers में बदलाव ऐसी समस्या हल कर रहा है जो है ही नहीं।

nmcli connection show
nmcli connection up "Work VPN"

यदि मैनेजर मना कर दे, तो कारण पढ़ें: लापता polkit नियम, किसी दूसरे उपयोगकर्ता के स्वामित्व वाला कनेक्शन या ऐसी जगह रखी प्रोफ़ाइल जहाँ से उपयोगकर्ता उसे पढ़ नहीं सकता। इनमें से प्रत्येक के लिए sudo नियम से संकरा समर्थित उपाय है। विशेषाधिकार बढ़ाना आखिरी उपाय है, पहला नहीं।

शर्त 2: नियम एक निष्पादन-योग्य फ़ाइल और उसके तर्कों का नाम लेता है

यदि sudo वास्तव में ज़रूरी है, तो नियम को सटीक आदेश और जहाँ संभव हो, उन तर्कों का नाम लेना चाहिए जिनका उपयोग वह कर सकता है। जो नियम उपयोगकर्ता को रैपर स्क्रिप्ट चलाने देता है, वह उस स्क्रिप्ट की अनुमतियों जितना ही सुरक्षित है, क्योंकि उपयोगकर्ता बदल सकता है कि root क्या चलाएगा। आदेश के बाद वाइल्डकार्ड वाला नियम उसी समस्या का छोटा रूप है।

sudo -l -U alice
ls -l /usr/local/sbin/vpn-up

आदेश की श्रृंखला में हर पथ जाँचें: बाइनरी, वह स्क्रिप्ट जिसे वह कॉल करता है, वह कॉन्फ़िगरेशन फ़ाइल जिसे वह पढ़ता है और उनके बीच की कोई भी निर्देशिका। यदि इनमें से कोई भी उपयोगकर्ता द्वारा लिखे जाने योग्य है, तो सीमित नियम व्यवहार में असीमित root है। तर्क भी मायने रखते हैं, क्योंकि कॉन्फ़िग पथ स्वीकार करने वाले आदेश को उपयोगकर्ता के नियंत्रण वाली फ़ाइल की ओर मोड़ा जा सकता है। नियम बटन के लिए नहीं, काम के लिए लिखें।

यदि आदेश को काम करने के लिए उपयोगकर्ता-नियंत्रित फ़ाइल चाहिए, तो रुकें। तब डिज़ाइन गलत है, और कोई भी sudoers सिंटैक्स उसे सुरक्षित नहीं बनाएगा।

शर्त 3: पूरी नीति पार्स होती है, सिर्फ़ आपकी पंक्ति नहीं

उस संपादक से जाँचें जो फ़ाइल को लॉक करता है और सिंटैक्स जाँचता है, और टुकड़े के बजाय जोड़ी गई पूरी नीति जाँचें। जो फ़ाइल अकेले पार्स होती है, वह फिर भी इन्क्लूड क्रम तोड़ सकती है या नियम को इस तरह दोहरा सकती है कि व्यवहार बदल जाए।visudo मैन्युअल यहाँ इस्तेमाल होने वाले लॉकिंग संपादक और केवल-जाँच मोड, दोनों का दस्तावेज़ीकरण करता है।

sudo visudo -c
sudo visudo -cf /etc/sudoers.d/vpn-launcher

जाँच विफल होने पर फ़ाइल और पंक्ति बताती है, और वही रिपोर्ट उपयोगी हिस्सा है। ज्ञात त्रुटि को ज़बरदस्ती सहेजने के बजाय संपादक के ज़रिए इच्छित बदलाव ठीक करें, क्योंकि टूटी नीति एक साथ सभी एडमिनिस्ट्रेटर को बाहर कर सकती है। इन्क्लूड निर्देशिका की फ़ाइलों को भी मैन्युअल के अनुसार स्वामित्व और मोड चाहिए, वरना उन्हें अनदेखा या अस्वीकार किया जाएगा। सिंटैक्स सिर्फ़ पहला द्वार है: वह पार होने के बाद नियम फिर पढ़ें और पूछें कि वह वास्तव में क्या अनुमति देता है।

यदि बदलाव को काम कराने का एकमात्र तरीका सिंटैक्स जाँच बंद करना है, तो रुकें। वह नीति नहीं है, वह रीबूट का इंतज़ार कर रहा व्यवधान है।

रिकवरी: ऐसा सत्र रखें जो अभी भी काम करे

सहेजने से पहले सुनिश्चित करें कि एक अधिकृत प्रशासनिक सत्र पहले से खुला है और मशीन में दूसरा रास्ता मौजूद है। sudoers की गलती आपकी उसे ठीक करने की क्षमता छीन सकती है, और डेस्कटॉप का बटन उस जोखिम के लायक नहीं है। यदि sudo पहले से टूटा है, तो अपना रास्ता बनाने के बजाय सिस्टम के प्रलेखित रिकवरी पथ का उपयोग करें।

sudo -n true
id

pkexec जैसे विकल्प अपनी स्थापना और नीति पर निर्भर करते हैं, इसलिए वे गारंटीकृत दूसरा root प्रॉम्प्ट नहीं हैं। स्थानीय प्राधिकरण को VPN रहस्य देने से भी अलग रखें: sudo नियम अनुपस्थित सीक्रेट एजेंट को खोल नहीं सकता, और वह गेटवे के MFA को पूरा नहीं करता। सुधार के बाद सामान्य खाते को केवल इच्छित कार्य करते हुए जाँचें, फिर मैनेजर के सामान्य नियंत्रणों का उपयोग करें।

निर्णय तब पूरा होता है जब आप बता सकें कि किस शर्त ने sudo को उचित ठहराया, नियम किसका नाम लेता है, पूरी नीति पार्स होती है, और न हो तो आप कैसे रिकवर करते। ऐसा विशेषाधिकार-प्राप्त लॉन्चर जो आपका प्रशासनिक पहुँच छीन ले, बुरा सौदा है, और आमतौर पर उससे बचा जा सकता है।

संबंधित लेख