सूडो का उपयोग करने की तुलना में अधिक समय तक सुपर-उपयोगकर्ता की अनुमति कैसे दें?


25

क्या कोई ऐसा तरीका है जिसके माध्यम से मैं sudoकमांड को अपने डिफ़ॉल्ट समय की तुलना में लंबी अवधि के लिए अनुमति दे सकता हूं?

sudoकई पैकेजों की स्थापना की आवश्यकता होने पर , पासवर्ड दर्ज करते समय दर्द हो सकता है, इसलिए यह अच्छा होगा यदि कोई कमांड या कॉन्फ़िगरेशन मौजूद है जो इसे उपयोग की अवधि को प्रभावित करने के लिए किया जा सकता है।


3
तो, कोई suभी किसी और का उपयोग करता है ? कभी?
श्री लिस्टर

9
@ मस्टरिस्टर sudo -iऔर आपके पास एक रूट शेल है, जो किसी के भी पैरों में खुद को झुलसाने में मदद करने के लिए तैयार है, जैसे कि एक समय ...
22

1
@DevRobot, क्या आपके पास इसके लिए एक स्रोत है? मुझे यह विश्वास करना कठिन है कि कैननिकल इतनी महत्वपूर्ण कमांड को हटा देगा, और मुझे इसके बारे में Google पर कुछ भी नहीं मिल सकता है।
डीजेएमकेमहेम

9
@DevRobot suको पासवर्ड रखने के लिए रूट की आवश्यकता होती है। डिफ़ॉल्ट रूप से, उबंटू के रूट उपयोगकर्ता के पास पासवर्ड नहीं है। इसलिए, आप suजड़ नहीं कर सकते । suयहाँ पर काम कर रहा है। ऐसे किसी भी उपयोगकर्ता के साथ प्रयास करें जिसके पास पासवर्ड है।
मुरु ०

3
@ मरमू sudo suसिर्फ ठीक काम करता है, हालांकि थोड़ा दोहराव वाला।
coteyr

जवाबों:


27

व्यवहार को फ़ाइल sudoमें कॉन्फ़िगर किया गया /etc/sudoersहै। नहीं है timestamp_timeoutविकल्प समय की विशेष राशि के बाद पासवर्ड के लिए उपयोगकर्ता reprompting के लिए जिम्मेदार।

से आदमी sudoers

timestamp_timeout
                       Number of minutes that can elapse before sudo will ask
                       for a passwd again.  The timeout may include a frac‐
                       tional component if minute granularity is insufficient,
                       for example 2.5.  The default is 15.  Set this to 0 to
                       always prompt for a password.  If set to a value less
                       than 0 the user's time stamp will never expire.

उस सेटिंग को बदलने के लिए निम्नलिखित कार्य करें:

  1. टर्मिनल रन में sudo visudo। फ़ाइल visudoसंपादित करने के लिए विशेष रूप से उपयोग किया जाता है /etc/sudoersऔर डिफ़ॉल्ट रूप से nanoपाठ संपादक का उपयोग करता है ।
  2. से शुरू होने वाली रेखाओं का पता लगाएं Defaults। निम्नलिखित पंक्ति जोड़ें

    Defaults        timestamp_timeout=x
    

    जहां x मिनटों की वह राशि है जो आप रिप्रोडीस के बीच चाहते हैं

  3. फ़ाइल को Ctrl+ के साथ सहेजेंO


12

से man sudoers:

timestamp_timeout
                       Number of minutes that can elapse before sudo will ask
                       for a passwd again.  The timeout may include a frac‐
                       tional component if minute granularity is insufficient,
                       for example 2.5.  The default is 15.  Set this to 0 to
                       always prompt for a password.  If set to a value less
                       than 0 the user's time stamp will never expire.  This
                       can be used to allow users to create or delete their
                       own time stamps via “sudo -v” and “sudo -k” respec‐
                       tively.

जैसा कि आप देख सकते हैं, डिफ़ॉल्ट समयबाह्य sudo15 मिनट है। आप इस मान को बदल सकते हैं /etc/sudoers

आप सीधे संपादित नहीं करते हैं /etc/sudoers, इसके बजाय visudoइसे करने के लिए उपयोग करें ।

से man visudo:

     visudo edits the sudoers file in a safe fashion, analogous to vipw(8).
     visudo locks the sudoers file against multiple simultaneous edits, pro‐
     vides basic sanity checks, and checks for parse errors.  If the sudoers
     file is currently being edited you will receive a message to try again
     later.

इसलिए, sudo visudoटर्मिनल में टाइप करें , जो टेक्स्ट-एडिटर /etc/sudoersमें फाइल को खोलेगा nano

इस पंक्ति को देखें:

Defaults    env_reset

और वह मिनट जोड़ें जहाँ X आप मिनटों में सेट करना चाहते हैं।timestamp_timeout=X

इसलिए एक उदाहरण के रूप में:

Defaults    env_reset,timestamp_timeout=5

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

एक बार हो जाने के बाद, सहेजें और बाहर निकलें।

RootSudoTimeout देखें


मुझे 29 सेकंड से मारो =)
सर्जियो कोलोडियाज़नी

1
तुम अच्छे हो -_- b मैं लैपटॉप पर हूँ। । । शायद मुझे और अधिक कॉफी की आवश्यकता है
सर्जियो कोलोडियाज़नी

आप उदाहरण के लिए -1 को टाइमआउट के लिए भी सेट कर सकते हैं - यदि आप कभी भी ट्रिगर करने के लिए पासवर्ड प्रॉम्प्ट नहीं चाहते हैं।
मिचेल wवाईवेकी

8

इसे इस्तेमाल करे ।

  1. टर्मिनल में निम्नलिखित कमांड चलाएँ:

    sudo visudo
    
  2. इस तरह दिखाई देने वाली रेखा पर स्क्रॉल करें:

    Defaults        env_reset
    
  3. इसे उदाहरण के लिए बदलें:

    Defaults        env_reset,timestamp_timeout=30
    

30 मिनट में, मिनटों में बदलें, कि आप चाहते हैं कि यह समय से पहले रुक जाए। अगर आप कभी भी sudo चलाते हैं, या -1 चाहते हैं, तो आप इसे 0 में बदल सकते हैं, या यदि आप कभी भी एक पासवर्ड प्रॉम्प्ट नहीं चाहते हैं, तो प्रेस Ctrl+ Xको एडिटिंग समाप्त करने के लिए, परिवर्तनों को सहेजने के लिए Y, और बाहर निकलने के लिए एंटर करें।

यहाँ स्रोत है: http://lifehacker.com/make-sudo-session-last-longer-in-linux-122-245454


5

आप /etc/sudoersफ़ाइल को संपादित कर सकते हैं (साथ sudo visudo: सावधान रहें) और जैसी लाइन जोड़ें

Defaults:myname timestamp_timeout=15 

mynameआपकी यूजर आईडी कहाँ है टाइमआउट मान मिनटों में है। आप कभी भी समाप्त नहीं होने के लिए -1 के मान का उपयोग कर सकते हैं, और फिर sudo -kप्रमाणीकरण को मारने के लिए टाइप कर सकते हैं, इसलिए आपको फिर से पासवर्ड की आवश्यकता है।

या आप यह कहने के लिए एक प्रविष्टि जोड़ सकते हैं कि किसी विशेष कमांड को पासवर्ड की आवश्यकता नहीं है।


1
sudo -kकैश्ड प्रमाणीकरण को मैन्युअल रूप से अमान्य करने का उल्लेख करने के लिए +1 ।
बाइट कमांडर

5

मैं विश्वास नहीं कर सकता कि सबसे सरल आदेश:

sudo -s

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


1
यह नीचे मतदान क्यों है?
coteyr

3
मैं नीचे नहीं गया, लेकिन यह उपयोग करने के एक लाभ को हरा देता है sudo: हर एक कमांड लॉग होता है (ताकि आप देख सकें कि आपने क्या किया था)। जब आप रूट शेल खोलते हैं तो आप वह लॉगिंग खो देते हैं।
9:15

1
@guntbert निश्चित रूप से प्रत्येक कमांड लॉग इन है, लेकिन रूट उपयोगकर्ता के इतिहास में।
ओलिवर फ्रेडरिक

@ बियोवुल्फ़ आवश्यक नहीं है - बैश इतिहास सिस्टम लॉग से कुछ पूरी तरह से अलग है।
गुंटबर्ट

1
वास्तव में, @guntbert, यदि आप इस तरह से लॉग का उपयोग करते हैं, तो आपको अलग-अलग समस्याएं हैं।
ओलिवर फ्रेडरिक

1

अब तक के सभी अन्य उत्तर आपको अपना पासवर्ड फिर से टाइप करने के लिए कितनी देर के लिए डिफ़ॉल्ट समय-समय को बदलने के आसपास केंद्र में लगते हैं sudo। हालाँकि, यदि आप हर कमांड को पूर्व निर्धारित किए बिना केवल कमांड को रूट के रूप में चलाना चाहते हैं, तो आप इसके साथ sudoएक रूट शेल प्राप्त कर सकते हैं:

sudo -i

या

sudo bash

या

sudo <your preferred shell here>

हालांकि ये सभी बस एक ही प्रक्रिया को रूट के रूप में शुरू करते हैं, प्रश्न में एकल प्रक्रिया बस एक शेल के रूप में होती है जो आपको कई अन्य प्रक्रियाओं को शुरू करने की अनुमति देगा जैसे कि आप बिना किसी रूट sudoया पासवर्ड के बिना किसी रूट के रूप में पसंद करते हैं। :)

बेशक, बड़ी ताकत के साथ बड़ी ज़िम्मेदारी आती है, मूर्खतापूर्ण सामान न करें, आदि।


1
इस के साथ पूरी तरह से आनंद लें। वास्तव में आप एक रूट शेल चला रहे होंगे।
हमायग

4
यह क्यों ठुकराया गया है?
coteyr

@ हिमयाग हां, यदि आप एक रूट शेल शुरू करते हैं, तो आप वास्तव में रूट शेल चला रहे होंगे। इसलिए अंत में चेतावनी का कारण।
रीहराब

@coteyr संभवतः उसी कारण के लिए है जैसे कि BeWWulf का उत्तर।
गुंटबर्ट

1

उन उपयोगकर्ताओं से एक बहुत अधिक प्रश्न देखने के बाद, जो कॉन्फ़िगर की गई फ़ाइलों को संशोधित करते हैं और इस बात को लेकर उलझन में थे कि पैकेज अपग्रेड के बाद उनके बदलाव क्यों लिखे गए हैं, मैं ध्यान दूंगा कि यदि आप संशोधित करना चाहते हैं timestamp_timeout, तो इसके /etc/sudoers.dबजाय एक फ़ाइल बनाकर करना बेहतर है /etc/sudoersसीधे संशोधित करें।

तो आपको करना चाहिए

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

(फ़ाइल का नाम वह हो सकता है जो आप तब तक चाहते हैं जब तक उसमें एक अवधि न हो ( .) और न ही एक टिल्ड ( ~) के साथ समाप्त हो । /etc/sudoersअपनी पसंद के संपादक को खोलने के बजाय , यह /etc/sudoers.d/timeoutसामान्य रूप से एक खाली फ़ाइल के रूप में खुलेगा , क्योंकि यह मौजूद नहीं है। अपना रखो

Defaults timestamp_timeout=X

इसमें, और हमेशा की तरह बचत करें। फिर यदि कोई नया संस्करण /etc/sudoersसामने आता है, तो आपको नए संस्करण को स्थापित करने या अपने परिवर्तनों को रखने के बीच चयन करने की आवश्यकता नहीं है - आपके पास स्वतः ही दोनों होंगे।


1

यदि आप एक ऐसे समाधान की तलाश में हैं, जो कॉन्फ़िगरेशन फ़ाइल को परिवर्तित नहीं करता है , उदाहरण के लिए जब आप चाहते हैं कि टोकन एक विशेष सत्र के लिए लंबे समय तक चले, या यह एक स्पष्ट कार्रवाई के बाद ही लागू होता है, तो आप निम्नलिखित की कोशिश कर सकते हैं:

# Work as is with Bash 4.1.2(1)-release and later, this might require some adaptation for other shells
(while [ true ]; do sudo -v; sleep $((60*4)); done)&

मूल रूप से पिछला कोड हर 4 मिनट में बैकग्राउंड में लॉन्च की गई प्रक्रिया के जरिए सुडो टोकन को रिफ्रेश करता है

दरअसल, sudoमैनुअल के अनुसार : "sudoers सुरक्षा नीति के लिए डिफ़ॉल्ट पासवर्ड प्रॉम्प्ट 5 मिनट है ।" इसलिए सिस्टम विशिष्ट नीति के आधार पर, आप लूप पास को दो चक्रों के बीच सोते समय की मात्रा में बदल सकते हैं।

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