NOPASSWDनिर्देश का उपयोग करें
आप NOPASSWDअपनी /etc/sudoersफ़ाइल में निर्देश का उपयोग कर सकते हैं ।
यदि आपका उपयोगकर्ता कहा जाता है userऔर आपके मेजबान को बुलाया जाता है, hostतो आप इन पंक्तियों को जोड़ सकते हैं /etc/sudoers:
user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot
यह उपयोगकर्ता userको hostपासवर्ड दर्ज किए बिना वांछित कमांड चलाने की अनुमति देगा । अन्य सभी sudoएड कमांड को अभी भी पासवर्ड की आवश्यकता होगी।
आदेशों में निर्दिष्ट sudoersफ़ाइल चाहिए पूरी तरह से योग्य हो (यानी आदेश का निरपेक्ष पथ का उपयोग कर चलाने के लिए) में वर्णित के रूप sudoersआदमी पेज । एक सापेक्ष पथ प्रदान करना एक वाक्यविन्यास त्रुटि माना जाता है।
यदि कमांड एक अनुगामी /चरित्र के साथ समाप्त होता है और किसी निर्देशिका को इंगित करता है, तो उपयोगकर्ता उस निर्देशिका में किसी भी कमांड को चलाने में सक्षम होगा (लेकिन किसी भी उप-निर्देशिका में नहीं)। निम्नलिखित उदाहरण में, उपयोगकर्ता userनिर्देशिका में किसी भी कमांड को चला सकता है /home/someuser/bin/:
user host = (root) NOPASSWD: /home/someuser/bin/
नोट: फ़ाइल visudoको संपादित करने के लिए हमेशा sudoersयह सुनिश्चित करने के लिए कमांड का उपयोग करें कि आप अपने आप को सिस्टम से बाहर लॉक न करें - बस अगर आप गलती से sudoersफाइल में कुछ गलत लिख देते हैं। visudoआपकी संशोधित फ़ाइल को एक अस्थायी स्थान पर सहेजेगा और केवल वास्तविक sudoersफ़ाइल को अधिलेखित करेगा यदि संशोधित फ़ाइल त्रुटियों के बिना पार्स की जा सकती है।
/etc/sudoers.dसंशोधित करने के बजाय का उपयोग करना/etc/sudoers
संपादन के लिए एक विकल्प के रूप में /etc/sudoersफ़ाइल, आप में एक नई फ़ाइल के लिए दो पंक्तियों में जोड़ सकते हैं /etc/sudoers.dजैसे /etc/sudoers.d/shutdown। यह sudoअधिकारों में विभिन्न परिवर्तनों को अलग करने का एक सुंदर तरीका है और sudoersआसान उन्नयन के लिए मूल फ़ाइल को भी अछूता नहीं छोड़ता है ।
नोट: फिर से, आपको visudoयह सुनिश्चित करने के लिए फ़ाइल को संपादित करने के लिए कमांड का उपयोग करना चाहिए कि आप सिस्टम से बाहर खुद को लॉक न करें:
sudo visudo -f /etc/sudoers.d/shutdown
यह स्वचालित रूप से यह भी सुनिश्चित करता है कि नई फ़ाइल के स्वामी और अनुमतियां सही तरीके से सेट की गई हैं।
अगर sudoersगड़बड़ होती है
यदि आपने visudoअपनी फ़ाइलों को संपादित करने के लिए उपयोग नहीं किया है और फिर गलती से /etc/sudoersकिसी फ़ाइल को गड़बड़ या गड़बड़ कर दिया है, /etc/sudoers.dतो आप बंद हो जाएंगे sudo।
समाधान उन फ़ाइलों को ठीक करने के लिए हो सकता है pkexecजिनका उपयोग करना एक विकल्प है sudo।
ठीक करने के लिए /etc/sudoers:
pkexec visudo
ठीक करने के लिए /etc/sudoers.d/shutdown:
pkexec visudo -f /etc/sudoers.d/shutdown
यदि स्वामित्व और / या अनुमतियाँ किसी भी sudoersफ़ाइल के लिए गलत हैं , तो फ़ाइल को अनदेखा कर दिया जाएगा sudoताकि आप भी इस स्थिति में स्वयं को बंद कर सकें। फिर से, आप इसे pkexecठीक करने के लिए उपयोग कर सकते हैं ।
सही अनुमतियाँ इस तरह होनी चाहिए:
$ ls -l /etc/sudoers.d/shutdown
-r--r----- 1 root root 86 Jul 16 15:37 /etc/sudoers.d/shutdown
स्वामित्व और अनुमतियाँpkexec ठीक करने के लिए इस तरह का उपयोग करें :
pkexec chown root:root /etc/sudoers.d/shutdown
pkexec chmod 0440 /etc/sudoers.d/shutdown