सवाल अच्छा सुडो या सूडो अच्छा है?


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

  1. अच्छा सुडो [गहन आदेश यहाँ]
  2. सुडो अच्छा [गहन आदेश यहाँ]

बीटीडब्ल्यू यह लिनक्स 3.x के लिए है।


50
2017-09-05 16:31


मूल


आपको परीक्षण करने में मदद करने के लिए nice bash -c 'ps -p $$ -o pid,ni,comm', तथा sudo nice bash -c 'ps -p $$ -o pid,ni,comm', तथा nice sudo bash -c 'ps -p $$ -o pid,ni,comm'। इन तीनों को आपको स्पॉल्ड शेल की प्रक्रिया आईडी ($$) के लिए अच्छा मूल्य दिखाना चाहिए। - Zoredache
@Zoredache, जबकि मुझे लगता है कि आपकी टिप्पणी बहुत रचनात्मक है, हमें यह कहना चाहिए कि उनके पास एक ही अच्छा मूल्य होगा क्योंकि यह फोर्किंग करते समय विरासत में मिलता है, जो प्रश्न का वास्तविक उत्तर होना चाहिए। - Florin Asăvoaie
@FlorinAsavoaie यदि आपको लगता है कि यह जवाब होना चाहिए, तो कृपया इसे जोड़ने में संकोच न करें। मैंने उपरोक्त टिप्पणी को चीजों का परीक्षण करने के तरीके के रूप में जोड़ा, क्योंकि मैं व्यक्तिगत रूप से 100% आत्मविश्वास नहीं था कि क्या होगा, और मैंने एक आदेश खोजने का फैसला किया जो विभिन्न आमंत्रणों के साथ अच्छा मूल्य दिखा सकता है। मैं शिविर में हूं जो वास्तव में एक परीक्षण करना पसंद करता है जो दिखाता है कि चीजें किस तरह से चल रही हैं, उन्हें दिखाती है। - Zoredache
@ फ्लोरिनएसोवोएई मैंने भी सोचा होगा, लेकिन देखो serverfault.com/a/626576/117546। - emory


जवाब:


एक अंतर है, एक महत्वपूर्ण है।

यदि आप चाहते हैं कमी प्रक्रिया 'प्राथमिकता, आदेश कोई फर्क नहीं पड़ता। दूसरी तरफ, यदि आप चाहते हैं बढ़ना यह, आपको रखना होगा sudo से पहले nice

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


101
2017-09-05 17:04



बधाई हो, आप जीतते हैं। - Michael Hampton♦
यह एक बहुत ही महत्वपूर्ण बात है, हालांकि एक उत्तर के रूप में यह समझा जाता है जब आप समझाते हैं क्यूं कर ऑर्डर बेस केस में कोई फर्क नहीं पड़ता (जैसा कि माइकल अपने जवाब में करता है)। - Lightness Races in Orbit


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

जैसा कि थोरियमबीआर ने नोट किया है, यदि आप प्राथमिकता को कम कर रहे हैं, तो ऑर्डर अप्रासंगिक है, लेकिन यदि आप प्राथमिकता को उठाना चाहते हैं, तो (चूंकि इसे रूट के रूप में किया जाना चाहिए) आपको उपयोग करना होगा sudo nice

अन्यथा मैं किसी भी वास्तविक अंतर की कल्पना नहीं कर सकता।


15
2017-09-05 16:35





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

तो हाँ, एक अंतर है, अगर अच्छा प्रदर्शन करने के लिए कोई शोषण है, तो हमलावर अच्छे कार्यक्रम के समान विशेषाधिकारों के साथ कोड चला सकता है।

इसके अलावा, सूडो आपके पर्यावरण को रीसेट करता है, इसलिए यह साइड इफेक्ट्स का जिक्र करता है, कोशिश करें

$ echo 'echo $PATH' | sh
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/jens/.local/bin:/home/jens/bin:/home/jens/.local/bin
$ echo 'echo $PATH' | sudo sh
[sudo] password for jens: 
/sbin:/bin:/usr/sbin:/usr/bin

तो सूडो के माध्यम से चलने वाला 'अच्छा' कमांड वास्तव में एक अलग बाइनरी बन सकता है।

$ which ash
~/.local/bin/ash
$ sudo which ash
[sudo] password for jens: 
which: no ash in (/sbin:/bin:/usr/sbin:/usr/bin)

1
2017-09-12 13:04





देर से जवाब:

यदि आपकी सूडो पहुंच कुछ कार्यक्रमों तक ही सीमित है (foo तथा bar, उदाहरण के लिए), तो आपके पास चलाने का अधिकार नहीं होगा sudo nice foo, लेकिन चलाने की अनुमति दी जाएगी nice sudo foo


1
2018-01-22 13:59