/ Etc / sudoers में NOPASSWD जोड़ना काम नहीं करता है


45

14.04 को यहां। मैंने अपनी मशीन में SSHed किया, निम्न पंक्ति को इसमें जोड़ा /etc/sudoers:

myuser   ALL=NOPASSWD: ALL

और फिर चलाने की कोशिश की:

sudo mkdir /etc/blah

... और मुझसे मेरा पासवर्ड मांगा जा रहा है। क्यों?!?

मैं नहीं चाहता कि यह ऑपरेशन करते समय मुझसे पासवर्ड मांगा जाए। कृपया ध्यान दें कि जब मैं दौड़ता ls -ltr /हूं तो मुझे मिलता है:

drwxr-xr-x 94 root root  4096 Jul 30 13:28 etc

लेकिन मुझे नहीं लगता कि यह मायने रखता है क्योंकि मैंने खुद को "सुडोल" के रूप में स्थापित किया है, है ना?

इससे भी महत्वपूर्ण बात, मुझे ऐसा करने की क्या आवश्यकता है ताकि मैं पासवर्ड के लिए पूछे बिना sudo mkdir /etc/blahअपने वर्तमान उपयोगकर्ता ( myuser) के रूप में चला सकूं?

यहाँ मेरी पूरी /etc/sudoersफ़ाइल है:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root      ALL=(ALL:ALL) ALL
fizzbuzz  ALL=NOPASSWD: ALL
chadmin   ALL=NOPASSWD: ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

क्या आप अपनी sudoers फ़ाइल पोस्ट कर सकते हैं? निर्देश सही है, लेकिन यह संदर्भ के कारण काम नहीं कर सका।
लिली जूल

धन्यवाद @Letizia - कृपया मेरा अपडेट देखें, कुछ भी आप पर कूद सकता है?
Zac

मुझे लगता है कि मुझे यह भी ध्यान देना चाहिए कि मैंने इस फ़ाइल में किसी भी मैनुअल संपादन का उपयोग नहीं किया ,visudo लेकिन कॉपी-एन-पेस्ट जॉब्स नहीं थे, मैंने सबकुछ टाइप किया। लेकिन क्या visudoयह इसके अलावा अन्य फ़ाइलों को संपादित करता है ? वह यह हो सकता है ...
Zac


इसके अलावा, किसी भी फाइल की जांच करें /etc/sudoers.d/, वे /etc/sudoers
टॉकलैंड

जवाबों:


68

यह उन नियमों का अनुक्रम / आदेश है जो इसका कारण बने। अंतिम नियम वरीयता लेता है।

अपनी समस्या को ठीक करने के लिए, बस अपनी लाइनों को स्थानांतरित करें,

fizzbuzz  ALL=NOPASSWD: ALL
chadmin   ALL=NOPASSWD: ALL

से sudoersफाइल करने के लिए

sudo visudo -f /etc/sudoers.d/myOverrides 

यह sudoersएक सादे पाठ संपादक के साथ फ़ाइल को संपादित करने की तुलना में बेहतर दृष्टिकोण है । यदि आप गलती से फ़ाइल में त्रुटियां सम्मिलित करते हैं, तो आप अधिक समय तक नहीं चल सकते sudo। हमेशा उपयोग करें visudo, ताकि वाक्यविन्यास की जाँच हो और आपको गलतियों के बारे में चेतावनी मिले!

आपका निर्देश काम नहीं करता क्योंकि यह ओवरराइड है:

%admin ALL=(ALL) ALL
%sudo   ALL=(ALL:ALL) ALL

यदि आप groupsकमांड चलाते हैं, तो आपको यह देखना चाहिए कि आपका उपयोगकर्ता इन समूहों से संबंधित है।


फ़ाइल के नाम को nn-somename, उदाहरण के लिए/etc/sudoers.d/20-myoverrides
shimatai

हां, निश्चित रूप से, यदि आपके पास एक से अधिक फ़ाइल हैं, तो इन्हें क्रमबद्ध शाब्दिक क्रम में पार्स किया जाता है, इसलिए किसी संख्या का उपयोग करना एक अच्छा अभ्यास है और उस आदेश को जानना आसान होगा।
लिली

21

यदि MyUser में है sudo समूह, तो लाइनों के इस आदेश, passwordless एक्सेस (के रूप में फ्लोरियन Diesch द्वारा नोट) प्रदान नहीं करेगा क्योंकि 3 लाइन 1 एक ओवरराइड करता है।

myuser    ALL=(www-data:www-data) NOPASSWD: ALL
# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

तो बस इस क्रम में लाइनें डालें:

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
myuser    ALL=(www-data:www-data) NOPASSWD: ALL

के तहत MyUser खाता उपयोग sudo -lकौन-सी अनुमति की जाँच करने के MyUser है।


10

यदि उपयोगकर्ता के लिए कई प्रविष्टियाँ मेल खाती हैं तो अंतिम का उपयोग किया जाता है। तो अगर fizzbuzzऔर chadminसमूह के सदस्य हैं adminया sudoउनसे अभी भी पासवर्ड मांगा जाएगा।

लाइन के sudoersबाद फाइल के अंत में दो लाइनें डालें #includedir


वास्तव में, @ लेटिज़िया और आपके उत्तरों का एक संयोजन सबसे अच्छा है, क्योंकि डिफ़ॉल्ट रूप #includedirसे अंतिम प्रविष्टि है sudoers
मुरु

0

आदर्श रूप से यदि आप कस्टमाइज़ कर रहे हैं कि आपके द्वारा किस कमांड को चलाया जा सकता है , तो फ़ाइल को सीधे संपादित करने के बजाय sudoएक अलग फ़ाइल में इन परिवर्तनों को करना चाहिए । आपको हमेशा फ़ाइल को संपादित करने के लिए भी उपयोग करना चाहिए । आपको आदेशों पर कभी भी अनुदान नहीं देना चाहिए ।/etc/sudoers.d/sudoersvisudoNOPASSWDALL

उदाहरण: sudo visudo -f /etc/sudoers.d/mynotriskycommand

अनुमति देते हुए अपनी लाइन डालें: myuser ALL= NOPASSWD: /bin/mkdir

तब सहेजें और बाहर निकलें और visudoआपको कोई भी वाक्यविन्यास त्रुटि होने पर चेतावनी देगा।

आप sudo -lअपने उपयोगकर्ता द्वारा दी गई अनुमतियों को देखने के लिए भाग सकते हैं , यदि उपयोगकर्ता के किसी विशेष NOPASSWDकमांड से %groupyouarein ALL=(ALL) ALLआपके पासवर्ड के लिए संकेत दिए गए आउटपुट में कोई भी आदेश दिखाई देगा ।

यदि आप अपने आप को इन sudoers.d फ़ाइलों के बहुत सारे बनाते हैं, तो शायद आप उन्हें प्रति उपयोगकर्ता नाम बनाना चाहेंगे, ताकि वे कल्पना करना आसान हो। ध्यान रखें कि फ़ाइल के भीतर फ़ाइल नाम और नियम का क्रम बहुत महत्वपूर्ण है, LAST एक भरी हुई जीत है, चाहे वह पिछली प्रविष्टियों की तुलना में अधिक या कम अनुमत हो।

आप 00-99 या aa / bb / cc के उपसर्ग का उपयोग करके फ़ाइल नाम आदेश को नियंत्रित कर सकते हैं, हालांकि यह भी ध्यान रखें कि यदि आपके पास कोई भी फाइल है जिसमें संख्यात्मक उपसर्ग नहीं है, तो वे गिने हुए फ़ाइलों के बाद लोड करेंगे, ओवरराइडिंग सेटिंग्स। ऐसा इसलिए है क्योंकि आपकी भाषा सेटिंग्स "लेक्सिकल सॉर्टिंग" के आधार पर शेल पहले नंबर का उपयोग करता है और फिर "आरोही" क्रम में सॉर्ट करते समय ऊपरी और निचले हिस्से को इंटरलेक्ट कर सकता है।

दौड़ने की कोशिश करें printf '%s\n' {{0..99},{A-Z},{a-z}} | sortऔर printf '%s\n' {{0..99},{A-Z},{a-z}} | LANG=C sortदेखें कि आपकी वर्तमान भाषा प्रिंट करती है AaBbCcया ABCफिर abcयह निर्धारित करने के लिए कि उपयोग करने के लिए सबसे अच्छा "अंतिम" अक्षर उपसर्ग क्या होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.