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


इससे प्रेरित सवाल....

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

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


223
2018-06-06 12:30


मूल


तो आप केवल टर्मिनल में पासवर्ड के लिए और अन्य चीजों के लिए नहीं पूछना चाहते हैं, या दूसरी तरफ ?! दोनों तरीकों से, मुझे लगता है कि यह एक उच्च सुरक्षा उल्लंघन है - Dr_Bunsen
मैं चाहता हूं कि सिस्टम केवल टर्मिनल में पासवर्ड न पूछे ... किसी अन्य उद्देश्य के लिए सिस्टम को पासवर्ड पूछना चाहिए। यह आवश्यकता केवल अस्थायी है, और नए सर्वर स्थापित करने के दौरान कॉन्फ़िगर करते समय उपयोग किया जा रहा है .. ताजा सर्वर इंस्टॉलेशन के दौरान, यह वास्तव में सुडो कमांड के साथ कॉन्फ़िगर करने के घंटों लेता है .. हर 15 मिनट में पासवर्ड जारी करना। सिरदर्द है मैं रूट खाता का उपयोग नहीं करना चाहता। - Z9iT
आपको इस चर्चा को पढ़ने की जरूरत है: askubuntu.com/questions/135428/... - david6
निश्चित रूप से आप टाइमआउट को बढ़ा सकते हैं। साथ ही, यदि आप अक्सर ताजा सर्वर सेटअप कर रहे हैं तो आपको प्रक्रिया को स्वचालित करने के बारे में सोचना चाहिए। आपको टाइप करने के लिए भुगतान नहीं किया जाता है, आपको समस्याओं का समाधान करने और sh * t प्राप्त करने के लिए भुगतान किया जाता है। - MauganRa
सम्बंधित: बिना पासवर्ड के sudo कमांड कैसे चलाएं? - Eliah Kagan


जवाब:


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

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


64
2018-06-06 13:36



क्या यह सच होगा कि मैं केवल एक बार पासवर्ड दर्ज करता हूं ... और जब तक मैं बाहर नहीं निकलता; मौसम 5 बजे या 15 .... जब कोई सुडो कमांड जारी किया जाता है तो सिस्टम पासवर्ड द्वारा प्रमाणीकरण के लिए नहीं पूछता है। - Z9iT
@ Z9iT जब तक आप टाइप न करें exit या जब तक आप टर्मिनल एमुलेटर विंडो बंद नहीं करते। - Bruno Pereira
धन्यवाद .. इस उत्तर को स्वीकार किया गया क्योंकि यह एन-घंटे के लिए पासवर्ड प्रमाणीकरण के बिना सुडो कमांड जारी करने का उद्देश्य सर्वर तक पहुंचने के समय तक सीमित नहीं है .. सिस्टम फ़ाइलों को संशोधित करना एक प्लस नहीं है। - Z9iT
यह वास्तव में प्रश्न का उत्तर नहीं देता है, क्योंकि आपको उस बिंदु पर रूट बनने के लिए अभी भी पासवर्ड दर्ज करना होगा। - Adam F
यदि आप किसी सुरक्षित वातावरण में वर्चुअल मशीन नहीं चला रहे हैं और आप बस चीज़ को तुरंत कुछ करना चाहते हैं और आप पासवर्ड से निपटना नहीं चाहते हैं। यह उत्तर प्रश्न का उत्तर नहीं देता है, जबकि यह तर्कसंगत उपयोगी जानकारी है। मैं एडम एफ से सहमत हूं - Jonathan Komar


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

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

sudo visudo

फ़ाइल के निचले भाग में, अनुसरण करें टाइप करें:

$USER ALL=(ALL) NOPASSWD: ALL

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

sudoers file]

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

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

gui password prompt

मुझे लगता है कि यह वही है जो आप चाहते हैं।


438
2018-06-06 13:20



इसका उपयोग करने की अनुशंसा की जाती है sudo visudo इसे सीधे संपादित करने के बजाय। सुडौर्स की अनुमतियों को भी बदलना आपके आप को बंद कर सकता है। के साथ संपादन करते समय vim, उपयोग :wq! केवल पढ़ने के लिए फाइलों को लिखने और संपादक से बाहर निकलने के लिए। इस तरह, अनुमति 644 आवश्यक नहीं हैं। - Lekensteyn
यह एक गंभीर सुरक्षा जोखिम है, जो कोई भी सूडो अधिकारों के साथ किसी भी खाते को लेता है, वह पूरी प्रणाली का नियंत्रण ले सकता है और इस कंप्यूटर पर आगे की पहुंच को लॉक कर सकता है, गंभीरता से अनुशंसित नहीं है। - Bruno Pereira
@ wil93 आप बिंदु खो रहे हैं: एक स्क्रिप्ट जो कॉल करती है sudo install crapware इस मामले में पासवर्ड नहीं मांगेगा और आपके पास जो कुछ भी है, उसे गड़बड़ कर सकता है, और पिछली बार मैंने चेक की गई स्क्रिप्ट वितरित करने के लिए आपको मशीन के आगे शारीरिक रूप से होने की आवश्यकता नहीं है ... यह सिर्फ एक उदाहरण है। - Bruno Pereira
@ ब्रुनोपेरेरा यदि आप अविश्वसनीय स्क्रिप्ट चलाने पर योजना बनाते हैं उस सुरक्षा जोखिम है (भले ही सुडो पासवर्ड मांगता है, फिर भी एक दुर्भावनापूर्ण लिपि हमेशा कर सकती है rm -rf ~काफी चीजों को गड़बड़ाना)। कुल मिलाकर, मैं «गंभीर सुरक्षा जोखिम» को सूडो से पासवर्ड प्रॉम्प्ट को सरल हटाने के लिए नहीं कहूंगा। - wil93
@ Wil93 के साथ सहमत हैं। अविश्वसनीय स्क्रिप्ट चलाते समय, पासवर्ड इनपुट करना प्रक्रिया को रद्द करने का मौका नहीं है, जबकि मुझे संदेह है कि ज्यादातर लोगों के लिए यह बेकार है। मुद्दा यह है कि आप जानते हैं कि स्क्रिप्ट कहां से और यह क्या करती है। - Chad


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

sudo visudo

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

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

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

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

अब टाइप करें:

,timestamp_timeout=X

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

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

मारो Ctrl+एक्स, फिर Y, फिर दर्ज अपनी फाइल को सहेजने और नैनो से बाहर निकलने के लिए।

आप अतिरिक्त जानकारी के लिए सूडोर्स और वी मैनुअल पेज पढ़ना चाहेंगे।

man sudoers
man vi

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

sudo -k

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

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

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

<username> ALL=NOPASSWD: ALL

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

उदाहरण:

michael ALL=NOPASSWD: ALL

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

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

मूल खाता

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

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

sudo -i

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

sudo passwd root

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

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

sudo passwd -dl root

सिस्टम-व्यापी समूह सूडो

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

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

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

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

sudo -k

30
2017-10-30 01:15



मैंने इसे जोड़ने से पहले इसे पोस्ट किया, इस प्रणाली को व्यापक तरीके से करने के लिए और दूसरों ने यहां पढ़ा: - user209328
यह एक देर का जवाब था, लेकिन यह आपके द्वारा प्रदान किए जाने वाले विकल्पों के संदर्भ में सबसे व्यापक है। - jenming


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

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

उदाहरण के लिए:

sudo echo "username ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/username

यह बहुत स्पष्ट कर देगा कि उपयोगकर्ताओं को अनुमति दी गई है।

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

sudo echo "username ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/local

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


10
2018-02-01 15:54



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


मौजूदा उपयोगकर्ता के लिए सुडो संकेतों को हटाने के लिए अच्छा एक-लाइनर

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

5
2018-06-27 17:50



मुझे लगता है कि आप बस कर सकते हैं: echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo env EDITOR="tee -a" visudo, केवल visudo ज़रूरत sudo सब के बाद (और यहां तक ​​कि env डिफ़ॉल्ट विन्यास, आईआईआरसी में आवश्यकता नहीं होगी)। - muru
वहां बहुत कुछ है जो यहां गलत हो सकता है (निश्चित रूप से सभी उपयोगकर्ता-त्रुटि), कि यह मेरी विनम्र राय में, सीधे सूडोयर फ़ाइल को संपादित करने के लिए पसंद किया जाता है (sudo visudo), परिणाम का परीक्षण करते समय (संपादक के साथ अभी भी खुला है), उन नए उपयोगकर्ताओं के लिए जो इस "एक-लाइनर" को आजमाने का लुत्फ उठा सकते हैं। - michael
प्रतिक्रिया के लिए धन्यवाद! मैं बस अपने अस्थिर परीक्षण वीएम में सुडो पासवर्ड प्रॉम्प्ट को हटाने के लिए स्क्रिप्ट की कोशिश कर रहा था। सुधार का सुझाव देने के लिए स्वतंत्र महसूस करें :) - Eric Landry


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

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


4
2018-06-06 13:27



sudo -s या sudo -i शायद दोनों से बेहतर विचार हैं sudo bash, क्योंकि वे सुनिश्चित करते हैं कि पर्यावरण सभ्य और चीजें हैं। - Darael
"सीन और चीजें" आम तौर पर "बेहतर विचारों" के दायरे में नहीं होती है, क्या कोई सूडो-एस या सूडो-आई सूडो बश से बेहतर क्यों हो सकता है? (संपादित करें: यहां एक प्रासंगिक प्रश्न है askubuntu.com/questions/376199/... ) - Nuzzolilo
की एक संख्या sudo आदेश (विशेष रूप से सोच रहा है sudo pip ...) की आवश्यकता है sudo -H आदेश को ठीक से चलाने के क्रम में (HOME सेट करें)। अन्य मामलों में, sudo -E (एनवी संरक्षित) की आवश्यकता हो सकती है। चल रहा है sudo bash शायद ज्यादातर मामलों में काम करेगा, लेकिन सभी में नहीं, और जब ऐसा नहीं होता है, तो यह स्पष्ट नहीं होगा कि क्यों। - michael
सुडो सु भूमिकाओं को बदलने और एक sys व्यवस्थापक अभिनय शुरू करने का पारंपरिक तरीका है। - user1656671


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

एसएसडीआईएन से पासवर्ड पढ़ता है जो एसएस स्विच का प्रयोग करें:

echo <password> | sudo -S <command>

बदलने के <password> आपके पासवर्ड के साथ


1
2018-05-17 00:12