सवाल बिना पासवर्ड के sudo कमांड कैसे चलाएं?


कैसे करता है ubuntu Ubuntu सर्वर 12.04 के लिए AWS छवियों पर उपयोगकर्ता को पासवर्ड रहित है sudo सभी आदेशों के लिए जब इसमें कोई कॉन्फ़िगरेशन नहीं है /etc/sudoers?

मैं अमेज़ॅन पर उबंटू सर्वर 12.04 का उपयोग कर रहा हूं। मैं एक नया उपयोगकर्ता जोड़ना चाहता हूं जिसमें डिफ़ॉल्ट उबंटू उपयोगकर्ता के समान व्यवहार हो। विशेष रूप से मैं पासवर्ड रहित चाहता हूँ sudo इस नए उपयोगकर्ता के लिए।

इसलिए मैंने एक नया उपयोगकर्ता जोड़ा है और संपादित करने के लिए चला गया है /etc/sudoers (निश्चित रूप से visudo का उपयोग कर)। उस फ़ाइल को पढ़ने से यह डिफ़ॉल्ट की तरह लग रहा था ubuntu उपयोगकर्ता इसे पासवर्ड रहित हो रहा था sudo के सदस्य होने से admin समूह। इसलिए मैंने अपना नया उपयोगकर्ता उसमें जोड़ा। जो काम नहीं किया। फिर मैंने जोड़ने की कोशिश की NOPASSWD निर्देश sudoers। जो भी काम नहीं किया।

वैसे भी, अब मैं सिर्फ उत्सुक हूँ। कैसे करता है ubuntu उपयोगकर्ता को पासवर्ड रहित विशेषाधिकार प्राप्त होते हैं यदि उन्हें परिभाषित नहीं किया गया है /etc/sudoers। तंत्र क्या है जो इसकी अनुमति देता है?


199
2017-09-23 09:30


मूल


सम्बंधित: पासवर्ड के बिना सुडो निष्पादित करें? - Eliah Kagan


जवाब:


ठीक है, मैंने जवाब खोज लिया है, इसलिए इसे यहां पूर्णता के लिए भी रखा जा सकता है। के अंत में /etc/sudoers मैंने सोचा कि सिर्फ एक टिप्पणी थी:

#includedir /etc/sudoers.d

हालांकि इसमें वास्तव में उस निर्देशिका की सामग्री शामिल है। फाइल के अंदर कौन सा है /etc/sudoers.d/90-cloudimg-ubuntu। अपेक्षित सामग्री कौन सा है

# ubuntu user is default user in cloud-images.
# It needs passwordless sudo functionality.
ubuntu ALL=(ALL) NOPASSWD:ALL

तो वह जगह है जहां डिफ़ॉल्ट ubuntu उपयोगकर्ता के लिए सुडो कॉन्फ़िगरेशन रहता है।

आपको visudo का उपयोग करके इस फ़ाइल को संपादित करना चाहिए। निम्न आदेश आपको visudo के साथ सही फ़ाइल को संपादित करने देगा।

sudo visudo -f /etc/sudoers.d/90-cloudimg-ubuntu

और एक लाइन जोड़ें जैसे:

aychedee ALL=(ALL) NOPASSWD:ALL

अतं मै।


292
2017-09-23 10:27



मुझे पूरा यकीन है कि मुझे एक पूर्ण रीबूट करना था। - aychedee
प्रत्येक नए लॉग इन उपयोगकर्ता के लिए नए सूडो नियमों का उपयोग किया जाएगा - इसलिए आपको कम से कम लॉगिन करने की आवश्यकता है - bluszcz
'सुडो सेवा सुडो फिर से शुरू' काम करता है :) - Laice
बाद के संस्करणों में (उदाहरण के लिए 14.04) शामिल फ़ाइल है /etc/sudoers.d/90-cloud-init-users (तो संपादित करने के लिए .. sudo visudo -f /etc/sudoers.d/90-cloud-init-users)। हालांकि जेनरेट किए गए संपादन को संपादित करने से अतिरिक्त फाइलें बनाना क्लीनर होगा। ध्यान दें कि एक युक्त फाइलें . या में समाप्त हो रहा है ~मर्जी नहीं शामिल हो। - Molomby
@ Phil_1984_ सबसे अधिक संभावना है, इसे सूडो के अन्य (मानक?) संस्करणों के साथ संगतता की अनुमति देने के लिए एक टिप्पणी के रूप में जोड़ा गया था, जिसमें शामिल नहीं है, लेकिन एक अजीब टिप्पणी से नहीं जाया जाएगा। (मानक कठिन हैं !-) - jpaugh


मैंने पाया कि यह सबसे आसान आगे की बात है, ताकि इस व्यवहार को कई सर्वरों में आसानी से दोहराने के लिए, निम्न था:

sudo visudo

इस लाइन को बदलें:

# Members of the admin group may gain root privileges
%admin  ALL=(ALL) ALL

इस लाइन में:

# Members of the admin group may gain root privileges
%admin  ALL=(ALL) NOPASSWD:ALL

और इसे ले जाएं के अंतर्गत यह रेखा:

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

अब आपके पास यह होना चाहिए:

# 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

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

# Members of the admin group may gain root privileges
%admin  ALL=(ALL) NOPASSWD:ALL

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

#includedir /etc/sudoers.d

फिर प्रत्येक उपयोगकर्ता के लिए जो सुडो पहुंच की आवश्यकता है एक पासवर्ड के साथ:

sudo adduser <user> sudo

और प्रत्येक उपयोगकर्ता के लिए जो सुडो पहुंच की आवश्यकता है बिना पासवर्ड के:

sudo adduser <user> admin

और अंत में, इसे चलाएं:

sudo service sudo restart

और बस!

संपादित करें: आपको व्यवस्थापक समूह को जोड़ना पड़ सकता है क्योंकि मुझे नहीं लगता कि यह डिफ़ॉल्ट रूप से मौजूद है।

sudo groupadd admin

आप डिफ़ॉल्ट एडब्ल्यूएस भी जोड़ सकते हैं ubuntu उपयोगकर्ता के लिए admin इस आदेश के माध्यम से समूह:

sudo usermod ubuntu -g admin

77
2018-04-03 21:45



स्वयं को ध्यान दें: यह ढेर में कम प्रतिबंधित अनुमतियों को स्थानांतरित करने के लिए एक सम्मेलन है। लेकिन ऐसा नहीं करने से कार्यक्षमता प्रभावित नहीं होगी। - poweratom
जैसा कि जिमिनिक ने समझाया, मुझे जगह लेनी पड़ी %व्यवस्थापक के बाद % sudo मेरे उबंटू गनोम 16.04 एलटीएस पर। इसके अलावा, प्रशासक समूह आईडी बिल्कुल नहीं है व्यवस्थापक परंतु ADM मेरे उबंटू पर कोई रीबूट की आवश्यकता नहीं थी। - hata


किसी भी संपादक का उपयोग किए बिना संक्षिप्त उत्तर (बैश पर परीक्षण, दूरस्थ होस्ट पर निष्पादित करने के लिए बहुत जोखिम भरा)।

मौजूदा उपयोगकर्ता के लिए पासवर्ड के बिना काम करने के लिए सुडो को कॉन्फ़िगर करें:

echo "$USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers

इसके साथ संपादन की जांच करें:

sudo visudo -c

सत्यापित करें कि क्या आप पासवर्ड के बिना सुडो का उपयोग कर सकते हैं:

sudo cat /etc/sudoers | grep "$USER"

... या बस इसे आज़माएं:

sudo <कुछ भी>

-1
2017-08-13 22:25



यह बहुत खतरनाक सलाह है ... इस गलत को कॉपी और पेस्ट करें और आप स्वयं को अपने सर्वर से बाहर कर देंगे। इसलिए visudo का उपयोग करने की सलाह। यह जांचता है कि डिस्क पर सहेजने से पहले वाक्यविन्यास सही है। तो, किसी के लिए जो इसका उपयोग करना चाहता है। उस दूरस्थ सर्वर पर ऐसा न करें जिसे आप परवाह करते हैं। आप इसके बारे में एक चेतावनी शामिल करना चाहेंगे। - aychedee
Visudo का उपयोग नहीं कर रहा है ए भयंकर विचार। मेरा विश्वास करो, मुझे पता है। - Bailey S
आईएमएचओ, एक कॉपी-पेस्ट मैन्युअल संपादन से सुरक्षित है। एक मामूली सरलीकरण: echo "$USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers - theartofrain
@theartofrain - आम तौर पर, मैं सहमत हूं, लेकिन visudo विशेष रूप से आपको सूडोज़र फ़ाइल को तोड़ने की इजाजत देने के बारे में अच्छा नहीं है, इस प्रकार आपको अपनी मशीन (या कम से कम सूडो) से लॉक नहीं कर रहा है। - Jon V
@ जोनवी आप के माध्यम से व्यवस्थापक अधिकार खो सकते हैं visudo भी, लेकिन आमतौर पर दुर्घटना से नहीं, क्योंकि visudo केवल उन परिवर्तनों को बचाता है जो अच्छी तरह से गठित होते हैं सूडो फाइलों के लिए व्याकरण। अधिकांश गलतियां वाक्यगत रूप से गलत हैं, इसलिए उन्हें कोई नुकसान नहीं होता है visudo। अगर /etc/sudoers या एक फ़ाइल में /etc/sudoers.d  है बीमार का गठन, sudo सुरक्षा उपायों के रूप में किसी के लिए विशेषाधिकारों को ऊपर उठाने से इंकार कर दिया, यही कारण है कि इसका उपयोग नहीं कर रहा है visudo खतरनाक है। (हालांकि कभी कभी pkexec इसे ठीक कर सकते हैं रिबूट के बिना।) - Eliah Kagan