डेबियन व्हीज़ी पर सुडोलर्स फ़ाइल को ठीक से कैसे कॉन्फ़िगर करें?


10

मैंने कई ब्लॉग पोस्ट देखे हैं जो कहते हैं, यह करना पर्याप्त है

aptitude install sudo
su root
adduser USERNAME sudo

लेकिन यह केवल रक्षा करता है aptitude, दूसरे शब्दों में:

  • aptitude install sendmailपासवर्ड के लिए पूछेंगे, आपको sudoचलाने की आवश्यकता है aptitude

  • apt-get install sendmailपासवर्ड के लिए नहीं कहेंगे, कोई sudoविशेषाधिकारों की आवश्यकता नहीं है

  • यदि आप संरक्षित फ़ाइलों को संपादित करते हैं, तो जैसे फाइलें etcपासवर्ड के लिए नहीं sudoपूछेंगी , किसी विशेष विशेषाधिकार की आवश्यकता नहीं है

  • आप सेवाओं को चला सकते हैं और जैसे रोक सकते हैं apache, यह पासवर्ड के लिए नहीं पूछेगा, किसी भी sudoविशेषाधिकार की आवश्यकता नहीं है

इसे कैसे ठीक करें? यह मेरी 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:$

# Host alias specification

# User alias specification

# Cmnd alias specification

यह आउटपुट है sudo -l:

Matching Defaults entries for root on this host:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User root may run the following commands on this host:
    (ALL : ALL) ALL
    (ALL : ALL) ALL

3
के बाद su root, आप rootउपयोगकर्ता के रूप में लॉग इन होते हैं , इसलिए आपके पास हर चीज़ की पूरी पहुँच होती है। एक नियमित उपयोग होने के लिए वापस पाने के लिए जिसे sudoविशेषाधिकार प्राप्त संचालन के लिए उपयोग करना है, खोल के लॉगआउट के रूप में चल रहा है root
पदावनत करें

मैं लिनक्स में नया हूँ, लेकिन डेबियन विकी कहता है - एड्यूसर
AntiCZ

जवाबों:


16

आपने कोई sudo नियम नहीं जोड़ा है, इसलिए आप sudo का उपयोग किसी भी चीज़ के लिए नहीं कर सकते हैं।

आदेश adduser USERNAME sudoनिर्दिष्ट उपयोगकर्ता को समूह में जोड़ता है sudo। उस नाम वाले समूह का अस्तित्व होना चाहिए; addgroup sudoअगर यह नहीं करता है तो इसे बनाएं । उपयोगकर्ता को समूह में जोड़ने के बाद, उपयोगकर्ता को प्रभावी होने के लिए समूह सदस्यता के लिए लॉग आउट और वापस होना चाहिए।

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

%sudo ALL = (ALL) ALL

visudoSudoers फ़ाइल को संपादित करने के लिए चलाएँ , इसे कभी भी सीधे संपादित न करें।

मुझे नहीं पता कि आप क्यों मानते हैं कि "यह केवल योग्यता की रक्षा करता है"। अभिरुचि के बारे में कुछ खास नहीं है। एक बार जब आप रूट के रूप में कमांड चलाने के लिए एक उपयोगकर्ता अधिकृत कर दी है, उस उपयोगकर्ता चला सकते हैं sudo aptitude …या sudo apt-get …या sudo service …या sudoeditफ़ाइलें संपादित करें कि संपादित करने के लिए रूट अनुमति की आवश्यकता होती है। Sudoers फ़ाइल में होने से आपके उपयोगकर्ता के विशेषाधिकारों में सीधे परिवर्तन नहीं होता है, यह क्या करता है कि यह आपको sudoकमांड को रूट के रूप में चलाने की अनुमति देता है । कमांड्स रूट के रूप में तभी चलते हैं जब आप उन्हें चलाते हैं sudo। कुछ प्रोग्राम ऐसा कर सकते हैं जो स्वचालित रूप से विशेष रूप से GUI प्रोग्राम है जहाँ उपयोगकर्ता इंटरफ़ेस विशेष विशेषाधिकार के बिना चलता है और केवल बैकएंड रूट के रूप में चलता है, लेकिन रूट के रूप में निष्पादित कमांड हमेशा निष्पादित होते हैं sudo


वह sudo -lजड़ के रूप में चला है। यहां तक ​​कि अगर उपयोगकर्ताओं के लिए उपयोगी परिभाषाएं हैं, तो उन्हें नहीं दिखाया जाएगा। इस प्रकार आपका अनुमान "आपने कोई सूडो नियम नहीं जोड़ा है" गलत हो सकता है।
हौके लैजिंग

@HaLLaging मैं आपकी टिप्पणी नहीं समझता। "आपने कोई sudo नियम नहीं जोड़ा है" एक अनुमान नहीं है: sudoersफ़ाइल प्रश्न में है।
गाइल्स का SO- बुराई पर रोक '23

मैं उदास होने के करीब था, यह महसूस करते हुए कि मैं sudo -lआउटपुट पर बहुत ज्यादा फोकस्ड था लेकिन सौभाग्य से ... ऐसा लगता है कि प्रश्न सामग्री पूरी फाइल नहीं हो सकती क्योंकि यह आउटपुट के अनुरूप नहीं है। कम से कम मेरे sudoसंस्करण का दावा नहीं है "उपयोगकर्ता रूट निम्नलिखित कमांड चला सकता है" sudoersबिना किसी कमांड परिभाषा के साथ (जैसे प्रश्न में एक)।
हॉके लैगिंग

@HaLLaging आप सही कह रहे हैं, मैंने मट्ठे से जाँच की और वास्तव में sudo -lबस यही कहता है कि "यूजर रूट को डार्कस्टार पर सुडोल चलाने की अनुमति नहीं है।" और sudoसमूह wheezy पर डिफ़ॉल्ट रूप से sudoers फ़ाइल में है। आवश्यक प्रविष्टियों को एक फ़ाइल के तहत स्थानांतरित किया जा सकता है /etc/sudoers.d। किसी भी मामले में, जो भी sudoers फ़ाइल होती है, वह ऐसा नहीं करेगी जो फिशर मानती है।
गिल्स एसओ- बुराई को रोकें '

4

क्या हो सकता है: sudo आपके पासवर्ड को कैशिंग कर रहा है। इसलिए, जब आपने अपने सिस्टम पर sudo के कार्यान्वयन को सही ढंग से पूरा कर लिया है, तो आपको पहले कमांड के लिए पासवर्ड दर्ज करना होगा , और उसके बाद इसे कुछ समय के लिए कैश कर दिया जाएगा। अगर ऐसा होता है और आप अनुक्रम चलाते हैं

sudo aptitude install sendmail
sudo apt-get install sendmail

फिर आपको पहले कमांड पर एक पासवर्ड प्रदान करना होगा, लेकिन दूसरे पर नहीं (कम से कम जबकि आप अभी भी टाइमआउट के भीतर हैं)। ऐसा महसूस हो सकता है कि यह केवल पहली कमांड की सुरक्षा कर रहा है , लेकिन दूसरा नहीं। अधिक जानकारी के बिना (पूर्ण शेल ट्रांसक्रिप्ट), बताने का कोई तरीका नहीं है ...


हाँ। एक दूसरे को बाहर नहीं करता है। सही उत्तर अच्छी तरह से समझाता है कि सूडो को सही तरीके से कैसे सेट किया जाए, और इस अर्थ में, यह प्रश्न का उत्तर देता है। यह व्याख्या नहीं करता है कि, प्रश्न के शब्दों में, "यह केवल योग्यता की रक्षा करता है"। गाइल्स खुद लिखते हैं: "मुझे नहीं पता कि आप क्यों मानते हैं कि" यह केवल योग्यता की रक्षा करता है ""। जैसा कि मैंने कहा, वास्तव में उस घटना को समझने के लिए, अधिक जानकारी आवश्यक है। मुझे लगता है कि एक गिरावट एक कठोर है जो मेरा उत्तर तथ्यात्मक रूप से सही है, मूल प्रश्न को संबोधित करता है और मौजूदा उत्तर में एक अंतर भरता है।
जोसेफ

अच्छा विचार, यह फिशर के भ्रम का स्रोत हो सकता है।
गिल्स एसओ- बुराई को रोकें '

0

यदि आप उपरोक्त उत्तर का पालन करते हैं, तो आप सही तरीके से जा रहे हैं। कम से कम मेरे डेबियन जेसी में, मैंने पथ / एसबिन में कमांड के / usr / bin के लिए एक नरम लिंक बनाया। उदाहरण के लिए: / sbin / ifup, मैं इसके लिए / usr / bin के लिए एक सॉफ्ट लिंक (ln -s) डालता हूं और मैं इसका उपयोग कर सकता हूं।

एक और महत्वपूर्ण बात यह है कि NOPASSWD को इस तरह रखा जाए:

User_Alias NET = goviedo
Cmnd_Alias ETH = /sbin/ifup
NET ALL = NOPASSWD:ETH
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.