पासवर्ड के बिना sudo निष्पादित करें?


292

इस सवाल से प्रेरित …।

मैं 12.04 के साथ अपने सिस्टम का उपयोग करने वाला एकमात्र व्यक्ति हूं।
हर बार मैं एक sudoआदेश जारी करता हूं ; सिस्टम उपयोगकर्ता पासवर्ड के लिए पूछता है (जो अपने तरीके से अच्छा है)।
हालाँकि मैं सोच रहा था; रूट खाते को सक्रिय किए बिना ; मैं sudo कमांड को कैसे निष्पादित कर सकता हूं जो उपयोगकर्ता पासवर्ड को प्रमाणित करने के लिए नहीं कहेगा।

नोट: मैं पासवर्ड के माध्यम से प्रमाणीकरण के बिना sudo कमांड निष्पादित करना चाहता हूं; केवल जब वे टर्मिनल के माध्यम से निष्पादित किए जाते हैं।
मैं 'Ubuntu सॉफ्टवेयर सेंटर' का उपयोग करते हुए या टर्मिनल पर ड्रैग-ड्रॉप something.sh फ़ाइल द्वारा बैश स्क्रिप्ट निष्पादित करते हुए सुरक्षा के इस अतिरिक्त स्तर को अन्य कार्यों से हटाना नहीं चाहता।


2
तो आप केवल टर्मिनल में पासवर्ड के लिए और अन्य चीजों के लिए नहीं पूछा जाना चाहते हैं, या अन्य तरह से घिरे हुए हैं ?! दोनों तरीकों से, मुझे लगता है कि इसका उच्च सुरक्षा उल्लंघन है
Dr_Bunsen

मैं चाहता हूं कि सिस्टम टर्मिनल में केवल तभी पासवर्ड नहीं पूछ सकता है ... किसी अन्य उद्देश्य के लिए सिस्टम को पासवर्ड पूछना होगा। यह आवश्यकता केवल अस्थायी है, और नए सर्वर स्थापित करते समय एन का उपयोग किया जा सकता है .. ताजा सर्वर प्रतिष्ठानों के दौरान, यह वास्तव में sudo कमांड के साथ कॉन्फ़िगर करने के घंटे लेता है .. हर 15 मिनट में पासवर्ड जारी करता है। सिरदर्द है। मैं रूट खाते का उपयोग नहीं करना चाहता।
भावेश दीवान

आपको चर्चा पढ़ने की आवश्यकता है: askubuntu.com/questions/135428/…
david6

1
सुनिश्चित करें कि आप टाइमआउट को लम्बा खींच सकते हैं। इसके अलावा, यदि आप अक्सर नए सर्वर सेटअप कर रहे हैं, तो आपको प्रक्रिया को स्वचालित करने के बारे में सोचना चाहिए। आपको टाइप करने के लिए भुगतान नहीं किया जाता है, आपको समस्याओं को हल करने और श * टी प्राप्त करने के लिए भुगतान किया जाता है।
मगंर्रा

जवाबों:


82

sudo -i यदि आप अपने सिस्टम (या अन्य सिस्टम) में संशोधन करते समय हर 10 मिनट में पासवर्ड टाइप नहीं करना चाहते हैं, तो जाने का रास्ता है, और आप किसी भी सिस्टम फाइल को संशोधित नहीं करना चाहते हैं।

sudoजब आप कंसोल को बंद करते हैं या exitआप अपने सामान्य उपयोगकर्ता पर वापस आ जाते हैं, तो यह आपके उपयोगकर्ता पासवर्ड का उपयोग कर आपको रूट करने के लिए स्विच करेगा ।


2
क्या यह सच होगा कि मैं केवल एक बार पासवर्ड दर्ज करता हूं ... और जब तक मैं बाहर नहीं निकलता हूं; मौसम 5 बजे। या 15 .... किसी भी sudo कमांड के जारी होने पर सिस्टम पासवर्ड से प्रमाणीकरण की मांग नहीं करेगा।
भावेश दीवान

2
@ Z9iT जब तक आप टाइप करते हैं exitया जब तक आप टर्मिनल एमुलेटर विंडो बंद नहीं करते हैं।
ब्रूनो परेरा

2
धन्यवाद .. इस जवाब को स्वीकार कर लिया क्योंकि यह सर्वर प्रमाणीकरण के बिना पासवर्ड प्रमाणीकरण जारी करने का उद्देश्य है n- घंटे के लिए जब तक हम बाहर नहीं निकलेंगे .. सिस्टम फ़ाइलों को संशोधित नहीं करना एक प्लस है।
भावेश दीवान

3
यह वास्तव में सवाल का जवाब नहीं देता है, क्योंकि आपको उस बिंदु पर रूट बनने के लिए अभी भी पासवर्ड दर्ज करने की आवश्यकता है।
एडम एफ

2
नहीं अगर आप एक सुरक्षित वातावरण में एक वर्चुअल मशीन चला रहे हैं और आप बस तुरंत कुछ करने की बात चाहते हैं और आप पासवर्ड से निपटना नहीं चाहते हैं। यह उत्तर प्रश्न का उत्तर नहीं देता है, जबकि यह यकीनन सहायक जानकारी है। मैं एडम एफ
जोनाथन कोमर

572

आप sudoकभी भी अपना पासवर्ड न मांगने के लिए कॉन्फ़िगर कर सकते हैं।

एक टर्मिनल विंडो खोलें और टाइप करें:

sudo visudo

फ़ाइल के निचले भाग में, निम्न पंक्ति जोड़ें:

$USER ALL=(ALL) NOPASSWD: ALL

$USERआपके सिस्टम पर आपका उपयोगकर्ता नाम कहां है। Sudoers फ़ाइल को सहेजें और बंद करें (यदि आपने अपना डिफ़ॉल्ट टर्मिनल संपादक नहीं बदला है (आपको पता होगा कि आपके पास है), तो बाहर निकलने के लिए ctl + x दबाएँ nanoऔर यह आपको बचाने का संकेत देगा।

Ubuntu 19.04 के रूप में, फ़ाइल को अब कुछ दिखना चाहिए

#
# 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:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) 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

YOUR_USERNAME_HERE ALL=(ALL) NOPASSWD: ALL

इसके बाद आप sudo <whatever you want>पासवर्ड के लिए संकेत किए बिना टर्मिनल विंडो में टाइप कर सकते हैं।

यह केवल sudoटर्मिनल में कमांड का उपयोग करने के लिए लागू होता है । यदि आप (उदाहरण के लिए) सॉफ़्टवेयर केंद्र से एक पैकेज स्थापित करने का प्रयास करते हैं तो भी आपको अपने पासवर्ड के लिए संकेत दिया जाएगा

gui पासवर्ड प्रॉम्प्ट


15
sudo visudoइसे सीधे संपादित करने के बजाय उपयोग करने की अनुशंसा की जाती है । इसके अलावा सूडरों की अनुमति बदलने से आप खुद को बंद कर सकते हैं। संपादन करते समय vim, :wq!केवल-पढ़ने के लिए लिखने के लिए फ़ाइलों का उपयोग करें और संपादक से बाहर निकलें। इस तरह, 644 की अनुमति आवश्यक नहीं है।
लीकेनस्टेन जु

8
यह एक गंभीर सुरक्षा जोखिम है, सूडो अधिकारों के साथ किसी भी खाते को लेने वाला कोई भी व्यक्ति पूरी प्रणाली का नियंत्रण ले सकता है और इस कंप्यूटर तक किसी भी पहुंच को लॉक कर सकता है, गंभीरता से अनुशंसित नहीं है।
ब्रूनो परेरा

6
@ wil93 आप इस बिंदु को याद कर रहे हैं: एक स्क्रिप्ट जो कॉल करती है sudo install crapwareवह इस मामले में पासवर्ड नहीं मांगेगी और आपके पास मौजूद हर चीज को गड़बड़ कर सकती है, और पिछली बार जब मैंने चेक किया तो स्क्रिप्ट वितरित करने के लिए आपको मशीन के बगल में भौतिक रूप से रहने की आवश्यकता नहीं है। .. यह सिर्फ एक उदाहरण है।
ब्रूनो परेरा

12
@BrunoPereira यदि आप अविश्वासित स्क्रिप्ट चलाने की योजना बनाते हैं, तो वह सुरक्षा जोखिम है (भले ही सूडो पासवर्ड मांगे, दुर्भावनापूर्ण स्क्रिप्ट हमेशा rm -rf ~कुछ चीजों को गड़बड़ कर सकती है )। कुल मिलाकर, मैं sudo से पासवर्ड प्रॉम्प्ट को सरल हटाने के लिए «गंभीर सुरक्षा जोखिम» नहीं कहूंगा।
wil93

5
@ Wil93 से सहमत हैं। जब एक अविश्वसनीय स्क्रिप्ट चलाते हैं, तो पासवर्ड को इनपुट करना प्रक्रिया को रद्द करने का मौका से अधिक नहीं है, जबकि मुझे संदेह है कि यह ज्यादातर लोगों के लिए बेकार है। मुद्दा यह है कि आप जानते हैं कि लिपि कहाँ से है और यह क्या करती है।
चाड

36

रूट सुडो टाइमआउट इसे करने का सबसे आसान और सुरक्षित तरीका है। मैं सभी उदाहरण देता हूँ, लेकिन चेतावनी दी जाती है कि किसी भी तरह से आप इसे करना बहुत जोखिम भरा है, हालाँकि यह तरीका बहुत सुरक्षित है:

sudo visudo

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

(Vi विशिष्ट निर्देशों के साथ नोट किया गया है (vi!) यदि आप नैनो का उपयोग कर रहे हैं तो इन पर ध्यान न दें।

Defaultsपंक्ति के अंत में जाने के लिए तीर कुंजियों का उपयोग करें ।

(vi!) वर्तमान लाइन के अंत में जाने के लिए ए (कैपिटल "ए" कुंजी दबाएं और संपादन मोड दर्ज करें (लाइन पर अंतिम वर्ण के बाद संलग्न करें)।

अब टाइप करें:

,timestamp_timeout=X

जहां एक्स मिनटों में समाप्ति का समय है। यदि आप 0 निर्दिष्ट करते हैं तो आपसे हमेशा पासवर्ड पूछा जाएगा। यदि आप एक नकारात्मक मान निर्दिष्ट करते हैं, तो टाइमआउट कभी समाप्त नहीं होगा। जैसे Defaults env_reset,timestamp_timeout=5

(vi!) कमांड मोड पर लौटने के लिए एस्केप मारा। अब, यदि आप अपने संपादन से खुश हैं, तो :w Enterफ़ाइल लिखने और :q Entervi से बाहर निकलने के लिए टाइप करें । यदि आपने कोई गलती की है, तो शायद सबसे आसान तरीका शुरू से फिर से करना है, बिना बचत के बाहर निकलने के लिए ( Escapeकमांड मोड में प्रवेश करने के लिए हिट ) और फिर टाइप करें: q! Enter

हिट Ctrl+ X, फिर Y, Enterअपनी फ़ाइल को बचाने और नैनो से बाहर निकलने के लिए।

आप अतिरिक्त जानकारी के लिए sudoers और vi मैनुअल पेज पढ़ना चाह सकते हैं।

man sudoers
man vi

टाइमआउट मान का उपयोग करके रीसेट करें:

sudo -k

ये निर्देश sudo कमांड का उपयोग करते समय पासवर्ड के लिए संकेत को हटाने के लिए हैं। हालांकि सुडो कमांड को रूट एक्सेस के लिए उपयोग करने की आवश्यकता होगी।

Sudoers फ़ाइल संपादित करें

एक टर्मिनल विंडो खोलें। में टाइप करें sudo visudo। फ़ाइल के अंत में निम्नलिखित पंक्ति जोड़ें (यदि अंत में नहीं है तो इसे बाद की प्रविष्टियों द्वारा शून्य किया जा सकता है):

<username> ALL=NOPASSWD: ALL

<username>अपने उपयोगकर्ता नाम (बिना <>) के साथ बदलें । यह मान रहा है कि उबंटू ने आपके उपयोगकर्ता नाम के समान नाम वाला एक समूह बनाया है, जो विशिष्ट है। आप बारी-बारी से समूह के उपयोगकर्ताओं या ऐसे किसी अन्य समूह का उपयोग कर सकते हैं, जिसमें आप यह सुनिश्चित करते हैं कि आप उस समूह में हैं। इसे सिस्टम -> प्रशासन -> उपयोगकर्ताओं और समूहों में जाकर चेक किया जा सकता है।

उदाहरण:

michael ALL=NOPASSWD: ALL

बाहर निकलने के लिए ^ X ( Ctrl+ X) टाइप करें। यह फ़ाइल को बचाने के लिए एक विकल्प के लिए संकेत देना चाहिए, Y को बचाने के लिए टाइप करें।

लॉग आउट करें, और फिर वापस लॉग इन करें। यह अब आपको पासवर्ड के लिए संकेत दिए बिना sudo कमांड चलाने की अनुमति देनी चाहिए।

जड़ खाता

रूट खाता सक्षम करना

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

sudo -i

हालाँकि, यदि आपको रूट लॉगिन सक्षम करना है , तो आप इसे इस तरह कर सकते हैं:

sudo passwd root

अपने रूट खाते को फिर से अक्षम करना

यदि किसी कारण से आपने अपना रूट खाता सक्षम किया है और इसे फिर से अक्षम करना चाहते हैं, तो टर्मिनल में निम्न कमांड का उपयोग करें:

sudo passwd -dl root

सिस्टम-वाइड समूह सुडो

root$ echo "%sudo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

लॉग आउट करें, और फिर वापस अंदर जाएं।

सुडेटो टाइमआउट रीसेट करें

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

sudo -k

मैंने इसे पोस्ट करने से पहले पोस्ट किया था, ऐसा करने के एक सिस्टम वाइड तरीके के लिए और अन्य लोगों ने यहां पढ़ा:
user209328

यह एक देर से जवाब था, लेकिन यह आपके द्वारा दिए गए विकल्पों के संदर्भ में सबसे व्यापक है।
जेन

1
हम्म, उबंटू 18.04 पर मेट यह पूरी तरह से काम करता है, जबकि उबंटू 18.04 पर भी ऐसा ही कर रहा है। गनोम ने मुझे "उपयोगकर्ता नाम सूडोर्स फाइल में नहीं है ..." समस्या के साथ झुर्रियां पैदा कीं। अब, यही कारण है कि इतने सारे pple सिर्फ linux से नफरत करते हैं - cuz यह शायद ही कभी "कारण" है: D बस मामले में U उसी में चलता है ... इस तरह से आप समस्या को ठीक करते हैं: tecmint.com/ ...
पीटर

EDITOR पर्यावरण वैरिएबल उपयोग किए गए संपादक को सेट कर सकता है ... उदाहरण के sudo env EDITOR=/bin/nano visudoलिए sudoersनैनो में मज़बूती से संपादित करने के लिए । (अद्यतन-विकल्प का उपयोग संपादक को भी सेट करने के लिए किया जा सकता है)
गर्ट वैन डेन बर्ग

28

व्यक्तिगत (या समूह) अनुमतियाँ प्रदान करने का पसंदीदा तरीका यह होगा कि आप किस फ़ाइल को जोड़ सकते हैं /etc/sudoers.d

यह डिफॉल्ट पॉलिसी से स्थानीय बदलावों को अलग करता है और वितरण सूडर्स फ़ाइल परिवर्तनों के मामले में समय बचाता है।

वर्तमान में उपयोगकर्ता आ sudoer में लॉग इन करें और sudoउन्हें पासवर्ड, उपयोग के लिए संकेत न दें

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

इससे एक फ़ाइल बन जाएगी, जिसका नाम /etc/sudoers.d/$USER( $USERउपयोगकर्ता का उपयोगकर्ता नाम जिसे आप लॉग इन किया गया था जब आप उस कमांड को चलाते थे), यह स्पष्ट करते हुए कि किन उपयोगकर्ताओं को अनुमति दी गई है।

यदि आप एक अलग उपयोगकर्ता के लिए ऐसा करना चाहते हैं, $USERतो उपरोक्त कमांड में कुछ अन्य उपयोगकर्ता नाम के साथ दोनों उदाहरणों को बदलें ।

echo "otheruser ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/otheruser

इसी तरह, एक फ़ाइल का उपयोग कई निर्देशों को प्रबंधित करने के लिए किया जा सकता है:

echo "username ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers.d/local

देखें /etc/sudoers.d/READMEऔर man sudoersअधिक जानकारी के लिए।


इको कमांड विफल रही, भले ही मैं रूट हूं। लेकिन, मैंने फ़ाइल को जोड़ा और इसे सीधे संपादित किया और इस पर नवीनतम ubuntu पर काम किया (जबकि उपयोगकर्ता सीधे sudo को सीधे जोड़ नहीं था!)
scape

1
सही तरीका यह है कि इसे teeकमांड के साथ करें ।
WOTO

1
यह एक बेहतर तरीका है जो काम करता है: sudo sh -c 'echo "$(logname) ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/$(logname)'इसके बादsudo chmod 440 /etc/sudoers.d/$(logname)
paradroid

में sudo ... >fileखोल पुनर्निर्देशन, मूल खोल में क्रियान्वित किया जाता है तो यह जड़ खोल में ही काम कर सकता है।
कोनस्टेंटिन पेलेपेलिन

टी विधि, बिना अनुमति के मुद्दों:echo "username ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/username
कार्सन आईपी

7

वर्तमान उपयोगकर्ता के लिए sudo को हटाने के लिए एक-लाइनर अच्छा है

sudo bash -c 'echo "$(logname) ALL=(ALL:ALL) NOPASSWD: ALL" | (EDITOR="tee -a" visudo)'

2
मुझे लगता है कि आप बस कर सकते हैं: echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo env EDITOR="tee -a" visudoकेवल सभी की visudoआवश्यकता है sudo(और envडिफ़ॉल्ट कॉन्फ़िगरेशन, IIRC में भी आवश्यकता नहीं होगी)।
मुरु

यहाँ बहुत कुछ है जो गलत हो सकता है (सभी उपयोगकर्ता-त्रुटि, निश्चित रूप से), यह पसंद किया जाता है, मेरी बहुत विनम्र राय में, सीधे sudoer फ़ाइल को संपादित करने के लिए ( sudo visudo), परिणाम का परीक्षण करते समय (संपादक के साथ अभी भी खुला), उन नए उपयोगकर्ताओं के लिए जिन्हें यह "वन-लाइनर" आज़माने के लिए लुभाया जा सकता है।
माइकल

प्रतिक्रिया के लिए धन्यवाद! मैं अपने वाष्पशील परीक्षण वीएम में सूडो पासवर्ड प्रॉम्प्ट को हटाने की कोशिश कर रहा था। सुधार का सुझाव देने के लिए स्वतंत्र महसूस करें :)
एरिक लैंड्री

आपको अभी भी sudo chmod 440 /etc/sudoers.d/$(logname)उस निर्देशिका में README में बताई गई फ़ाइल अनुमति को सही करने की आवश्यकता है ।
पैराडायरायड

6

बेशक आप क्या करना चाहते हैं अनुशंसित नहीं है। थोड़ी देर बाद, हालांकि प्रवेश sudoइतना स्वचालित हो जाता है कि इसकी उपयोगिता कम हो जाती है।

एक और तरीका यह है कि अपनी सुडौल फ़ाइल को छोड़ दें और अपने ओम्पटीन सौ सर्वरों को जटिल करते हुए, दर्ज करें sudo bash। इससे आपको एक शेल मिलेगा जो आपके बाहर निकलने तक जड़ के रूप में प्रमाणित होगा।


12
sudo -sया sudo -iशायद दोनों से बेहतर विचार हैं sudo bash, क्योंकि वे सुनिश्चित करते हैं कि पर्यावरण समझदार और चीजें हैं।
दारेल

2
"समझदार और चीजें" आम तौर पर "बेहतर विचारों" के दायरे में नहीं होती हैं, क्या कोई व्यक्ति तकनीकी व्याख्या दे सकता है कि सुडो-एस या सुडो-आई सूडो बैश से बेहतर क्यों है? : (संपादित करें यहाँ एक प्रासंगिक सवाल यह है कि askubuntu.com/questions/376199/... )
Nuzzolilo

2
के एक नंबर sudoआदेश (विशेष रूप से के बारे में सोच sudo pip ...) की आवश्यकता होती sudo -Hआदेश ठीक से चलाने के लिए आदेश में (सेट गृह)। अन्य मामलों में, sudo -E(संरक्षित एनवी) की आवश्यकता हो सकती है। रनिंग sudo bashशायद ज्यादातर मामलों में काम करेगा, लेकिन सभी में नहीं, और जब ऐसा नहीं होगा, तो यह स्पष्ट नहीं होगा कि क्यों।
माइकेल

1
sudo su भूमिकाओं को बदलने और एक sys एडमिन का अभिनय करने का पारंपरिक तरीका है।
user1656671

3

से सुपर उपयोगकर्ता एक अच्छा जवाब आता है:

STSIN से पासवर्ड पढ़ने वाले स्विच का उपयोग करें:

echo <password> | sudo -S <command>

<password>अपना पासवर्ड बदलें ।


2
यह सुझाव नहीं दिया गया है, क्योंकि शेल इतिहास फ़ाइल में पासवर्ड क्लियरटाइप में रहता है। इसके बजाय किसी अन्य समाधान को लागू करें।
हैप्पीकैक्टस

1
@ HappyCactus क्या आप एक बार सामने रख सकते हैं echoताकि यह इतिहास में दिखाई न दे?
विनयुनुच्स

हाँ, यह इतिहास फ़ाइल में स्पष्ट पासवर्ड को उजागर करने से बच जाएगा। लेकिन क्या आपको हमेशा इसे जोड़ना याद है? :-)
हैप्पी कैक्टस

@HappyCactus मैं दुर्घटना से अग्रणी स्थान जोड़ना चाहता हूं और तब गुस्सा हो जाता है जब इतिहास को याद नहीं किया जा सकता है :) वैसे भी सुपर उपयोगकर्ता के पास 129 अपवोट हैं, इसलिए मुझे लगता है कि यह यहां से जाने के लिए एक अच्छा जवाब है। लोग हमारी टिप्पणियों को पढ़ेंगे और जोखिम और जोखिम उठाने के चरणों के बारे में जानेंगे।
WinEunuuchs2Unix

मैं पूरी तरह सहमत हूँ। आपका दिन शुभ हो!
हेप्पी कैक्टस

2

एक लाइन

sudo sed -i /etc/sudoers -re 's/^%sudo.*/%sudo ALL=(ALL:ALL) NOPASSWD: ALL/g'


2

यह एक लाइन समाधान है जो फाइलों की अनुमतियों को भी बदलता है जैसा कि कहा गया है /etc/sudoer.d/README:

sudo sh -c 'echo "$(logname) ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/$(logname)' & sudo chmod 440 /etc/sudoers.d/$(logname)

0
  • @Upteryx विचार पर विस्तार।

  • यह है कि मैंने एक CICD पाइपलाइन में उपयोग के लिए गैर-रूट, पासवर्ड रहित उपयोगकर्ता को एक अल्पकालिक डॉकर छवि में लागू किया है।

RUN \
    groupadd -g 999 foo && useradd -u 999 -g foo -G sudo -m -s /bin/bash foo && \
    sed -i /etc/sudoers -re 's/^%sudo.*/%sudo ALL=(ALL:ALL) NOPASSWD: ALL/g' && \
    sed -i /etc/sudoers -re 's/^root.*/root ALL=(ALL:ALL) NOPASSWD: ALL/g' && \
    sed -i /etc/sudoers -re 's/^#includedir.*/## **Removed the include directive** ##"/g' && \
    echo "foo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \
    echo "Customized the sudoers file for passwordless access to the foo user!" && \
    echo "foo user:";  su - foo -c id
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.