कैसे sudo का उपयोग करने का इरादा है?


24

मैंने पहले कॉन्फ़िगर करने की कोशिश की है sudo, लेकिन मुझे इसके साथ बहुत अधिक भाग्य नहीं मिला है। यह किस तरह से अलग है su -l -c "x"? ऐसा लगता है कि कॉन्फ़िगरेशन फ़ाइल के माध्यम से, कोई भी इसे बना सकता है ताकि उपयोगकर्ता केवल कुछ कमांड और अधिक तक पहुंच प्राप्त कर सके। मैंने हमेशा sudoएक-अस्तर के एक तरीके के रूप में एक अन्य उपयोगकर्ता या समूह के रूप में सोचा । चूंकि उबंटू और टकसाल जैसे डिस्ट्रोस मुख्य उपयोगकर्ता को पासवर्ड के माध्यम से मूल रूप से आसान एक्सेस देकर इसे आसान बनाते हैं, मुझे वास्तव में यकीन नहीं है कि इसका उद्देश्य क्या है।

मैं एक उपयोगकर्ता को sudo फ़ाइल में कैसे जोड़ूं, उन्हें केवल कुछ कमांड चलाने का अधिकार देता है? मैं किसी भी सुरक्षा छेद को खोलना नहीं चाहता।

जवाबों:


16

मूल ऑपरेशन के लिए - रूट के रूप में कमांड चलाना - सुडो और सु के बीच सबसे अधिक अंतर यह है कि सूडो को कॉलिंग उपयोगकर्ता (यानी आपका पासवर्ड) के पासवर्ड की आवश्यकता होती है, जबकि सु को लक्ष्य उपयोगकर्ता (यानी रूट पासवर्ड) के पासवर्ड की आवश्यकता होती है। सुरक्षा निहितार्थों पर पिछले एक प्रश्न में बड़े पैमाने पर चर्चा की गई है: जो रूट विशेषाधिकार प्राप्त करने का सबसे सुरक्षित तरीका है: सुडो, सु या लॉगिन?

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

आप visudoकमांड को रूट के रूप में चलाकर sudo कॉन्फ़िगरेशन को बदलते हैं (कॉन्फ़िगरेशन को कभी भी सीधे संपादित न करें)। सुनिश्चित करें कि वातावरण चर बनाने EDITORया VISUALअपने पसंदीदा संपादक पर सेट हो या आप एक अपरिचित संपादक मिल सकता है। sudoersआदमी पेज थोड़ा संक्षिप्त है, लेकिन उदाहरण है। उपयोगकर्ता bobको चलाने के लिए /bin/foo(किसी भी तर्क के साथ) और /bin/bar --safe(लेकिन किसी अन्य तर्क के साथ नहीं) के रूप में root, निम्नलिखित पंक्तियों का उपयोग करने की अनुमति दें :

bob ALL = (root) /bin/foo
bob ALL = (root) /bin/bar --safe

2
sudoएक भयानक आविष्कार है
tshepang

1
क्या sudo को रूट पासवर्ड की आवश्यकता है या रूट पासवर्ड कॉन्फ़िगरेशन पर निर्भर करता है। इसे किसी भी तरह से सेट किया जा सकता है।
जोनाथन एम डेविस

3
@ तशपंग आमीन, भाई। अगर मुझे रूट पासवर्ड जारी करना है और एसयू के बारे में सपोर्ट टेक के बारे में समझाना है या नहीं / कुछ और / के अलावा apache2ctl gracefulमुझे लगता है कि मैं अपनी कलाई को मारना और इसे खत्म करना पसंद करूंगा।
शादुर

6

सबसे बड़ा अंतर यह है कि sudoआपको कमांड को रूट के रूप में चलाने के लिए रूट पासवर्ड की आवश्यकता नहीं है, जैसा कि आप करेंगेsu । आपको sudoersफ़ाइल में किसी को जोड़ने के लिए रूट पासवर्ड की आवश्यकता होती है, लेकिन उसके बाद वह व्यक्ति आगे पासवर्ड की आवश्यकता के बिना सभी या कुछ (यदि आपने इसे प्रतिबंधित किया है) को रूट के रूप में चला सकता है।

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

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

user_list host_list = cmd_list

cmd_list में वह विवरण शामिल हो सकता है जिसमें उपयोगकर्ता वास्तविक उपयोगकर्ता को स्विच करने की अनुमति देता है। उदाहरण के लिए, आप एक वेबमास्टर को Apache को पुनरारंभ करने के लिए wwwroot पर स्विच करने की अनुमति दे सकते हैं लेकिन रूट करने के लिए नहीं। इसमें अन्य विकल्प भी शामिल हो सकते हैं जैसे कि स्विच करने से पहले उपयोगकर्ता का पासवर्ड आवश्यक है (यह डिफ़ॉल्ट है)।

एक उदाहरण पंक्ति हो सकती है:

joe  ALL=(ALL) ALL

जिसका अर्थ है: जो किसी भी उपयोगकर्ता के रूप में किसी भी होस्ट पर कोई कमांड चलाने के लिए दो। एक तंग रेखा हो सकती है:

joe  ALL=(operator) /usr/local/ops/

जिसका अर्थ है: joe / usr / local / ops डायरेक्टरी में किसी भी कमांड को यूजर "ऑपरेटर" के रूप में चलाता है।

Sudoers man पेज के अंत में बहुत सारे उदाहरण हैं।

आपको /etc/sudoersकमांड के साथ एडिट करना चाहिए visudo। यह जाँचता है कि फ़ाइल कानूनी है और आपको इसे गलती से तोड़ने से रोकने में मदद करती है।


Sudo का उपयोग करते समय पासवर्ड की आवश्यकता है या नहीं, यह पूरी तरह से इस बात पर निर्भर करता है कि sudoersफ़ाइल कैसे सेट की गई है। इसे पासवर्ड की आवश्यकता के लिए सेट किया जा सकता है या पासवर्ड की आवश्यकता नहीं है।
जोनाथन एम डेविस

मुख्य / आदि / sudoers फ़ाइल को बदलने से बचने के लिए अतिरिक्त सामान्य अभ्यास क्योंकि IDS इसे देखता है और क्योंकि इसका स्वरूपण आपके दिन को बर्बाद कर सकता है: /etc/sudoers.d में अलग-अलग फ़ाइलों के रूप में sudo स्निपेट का उपयोग करें। लोगों के लिए पहिया समूह का उपयोग करने से किसी भी आदेश की अनुमति मिलती है।
bassassssiiee

2

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


3
यह सुरक्षा उद्देश्यों के लिए है क्योंकि sudo syslog के लिए लॉगिंग का समर्थन करता है जो सुरक्षा से संबंधित किसी भी प्रमुख सेटअप में एक अलग दूरस्थ मशीन में प्रवेश करने के लिए कॉन्फ़िगर किया जाएगा ताकि अगर सिस्टम से छेड़छाड़ की जाए तो लॉग को प्रभावित नहीं किया जा सके।
एरोमास्टर

अपेंड-ओनली फ़ाइल विशेषता थोड़ी सी चैट + + / var / लॉग / सिक्योरिटी की मदद कर सकती है
bbaassssiiee
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.