अच्छा सुडोल या सुडोल अच्छा?


53

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

  1. अच्छा sudo [यहाँ गहन आज्ञा]
  2. सुडोल अच्छा [सघन कमान यहाँ]

BTW यह लिनक्स 3.x के लिए है।


6
आपको परीक्षण देखने में मदद करने के लिए 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, जबकि मुझे लगता है कि आपकी टिप्पणी बहुत रचनात्मक है, हमें यह कहना चाहिए कि वे सभी का मूल्य एक ही अच्छा होगा क्योंकि यह जाली के समय विरासत में मिला है, जो प्रश्न का वास्तविक उत्तर होना चाहिए।
फ्लोरिन असावोई

3
@FlorinAsavoaie अगर आपको लगता है कि इसका उत्तर होना चाहिए, तो कृपया इसे जोड़ने के लिए स्वतंत्र महसूस करें। मैंने अपनी उपरोक्त टिप्पणी को चीजों को परखने के तरीके के रूप में जोड़ा, क्योंकि मैं व्यक्तिगत रूप से 100% आश्वस्त नहीं था कि क्या होगा, और मैंने एक आदेश खोजने का फैसला किया जो विभिन्न चालानों के साथ अच्छा मूल्य दिखा सकता है। मैं उस शिविर में हूं जो वास्तव में एक परीक्षण करना पसंद करता है जो दिखाता है कि चीजें चल रही हैं जिस तरह से वे माना जाता है।
16 अक्टूबर को Zoredache

@FlorinAsavoaie मैंने भी ऐसा सोचा होगा, लेकिन serverfault.com/a/626576/117546 को देखें
एमोरी

जवाबों:


104

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

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

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


21
बधाई हो, आप जीत गए।
माइकल हैम्पटन

2
यह एक बहुत ही महत्वपूर्ण बिंदु है, हालांकि एक उत्तर के रूप में यह केवल तभी पूरा होता है जब आप समझाते हैं कि आधार मामले में आदेश क्यों मायने नहीं रखता (जैसा कि माइकल अपने जवाब में करता है)।
मोनिका

16

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

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

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


2

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

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

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

$ 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)

2

देर से जवाब:

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

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