क्या कोई कारण है कि मैं डेबियन के लिए अपने रास्ते में / usr / स्थानीय / sbin, / usr / sbin, / sbin नहीं जोड़ूंगा?


25

डेबियन (बाएं) और उबंटू (दाएं) की तुलना करें:

$ ifconfig                                 $ ifconfig
bash: ifconfig: command not found          eth0     Link encap ...
$ which ifconfig                           $ which ifconfig
$                                          /sbin/ifconfig

फिर सुपरसुसर के रूप में:

# ifconfig                                 # ifconfig
eth0      Link encap ...                   eth0     Link encap ...
# which ifconfig                           # which ifconfig
/sbin/ifconfig                             /sbin/ifconfig

इसके अलावा:

# ls -l /sbin/ifconfig                     # ls -l /sbin/ifconfig
-rwxr-xr-x 1 root root 68360 ...           -rwxr-xr-x 1 root root 68040 ...

यह मुझे एकमात्र कारण लगता है कि मैं ifconfigडेबियन पर सुपरपावर के बिना नहीं चल सकता है, यह मेरे रास्ते में नहीं है। जब मैं इसका उपयोग /sbin/ifconfigकरता हूं तो यह काम करता है।

क्या कोई कारण है कि मुझे डेबियन पर अपना रास्ता नहीं जोड़ना चाहिए /usr/local/sbin:/usr/sbin:/sbin? यह एक व्यक्तिगत कंप्यूटर है, मैं केवल मानव उपयोगकर्ता हूं।


उपयोग किए गए संस्करण ( uname -a):
उबंटू:

Linux ubuntu 3.13.0-51-generic #84-Ubuntu SMP Wed Apr 15 12:08:34 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

डेबियन:

Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux

महान प्रश्न - upvoted :) संयोग से, यहाँ देबियन के निर्णय के बारे में कुछ इतिहास/usr/local/sbin:/usr/sbin:/sbin सामान्य उपयोगकर्ताओं के लिए डिफ़ॉल्ट PATH में नहीं रखा गया है। उबंटू का दृष्टिकोण सभी के लिए अधिक उपयोगकर्ता के अनुकूल लगता है लेकिन सबसे अनुभवी उपयोगकर्ता हैं।
सम्पाब्लोकपर

जवाबों:


27

में डेबियन नीति लिखा कि डेबियन इस प्रकार है फ़ाइल अनुक्रम मानक संस्करण 2.3। नोट # 19 मानक पर कहते हैं:

यह तय करना कि कौन सी चीजें "sbin" निर्देशिकाओं में सरल हैं: यदि कोई सामान्य (सिस्टम व्यवस्थापक नहीं) उपयोगकर्ता कभी भी इसे सीधे चलाएगा, तो इसे "बिन" निर्देशिकाओं में से एक में रखा जाना चाहिए। साधारण उपयोगकर्ताओं को अपने मार्ग में किसी भी प्रकार की निर्देशिका नहीं करनी चाहिए।

उदाहरण के लिए, chfn जैसी फाइलें, जिन्हें केवल कभी-कभी उपयोग करने वाले उपयोगकर्ताओं को अभी भी / usr / bin में रखा जाना चाहिए। पिंग, हालांकि यह रूट (नेटवर्क रिकवरी और निदान) के लिए बिल्कुल आवश्यक है, अक्सर उपयोगकर्ताओं द्वारा उपयोग किया जाता है और उस कारण से / बिन में रहना चाहिए।

हम अनुशंसा करते हैं कि उपयोगकर्ता ने / sbin को छोड़कर, शायद, कुछ निश्चित निपटान और सेटगेड कार्यक्रमों के लिए सब कुछ पढ़ने और निष्पादित करने की अनुमति दी है। / Bin और / sbin के बीच विभाजन सुरक्षा कारणों से या ऑपरेटिंग सिस्टम को देखने से उपयोगकर्ताओं को रोकने के लिए नहीं बनाया गया था, बल्कि बायनेरिज़ के बीच एक अच्छा विभाजन प्रदान करने के लिए जिसका उपयोग सभी करते हैं और जो मुख्य रूप से प्रशासन कार्यों के लिए उपयोग किए जाते हैं। उपयोगकर्ताओं के लिए / बंद-सीमा बनाने में कोई अंतर्निहित सुरक्षा लाभ नहीं है


संक्षिप्त जवाब:

क्या कोई कारण है कि मुझे /usr/local/sbin:/usr/sbin:/sbinडेबियन पर अपना रास्ता नहीं जोड़ना चाहिए ?

जैसा कि नोट कहता है, ऐसा कोई कारण नहीं है कि आपको ऐसा नहीं करना चाहिए। चूंकि आप सिस्टम का उपयोग करने वाले एकमात्र व्यक्ति हैं और आपको sbinनिर्देशिकाओं में बायनेरिज़ की आवश्यकता है , इसलिए उन्हें अपने साथ जोड़ने के लिए स्वतंत्र महसूस करें $PATH। इस बिंदु पर मैं आपको एक उत्कृष्ट उत्तर देने के लिए मार्गदर्शन करता हूं कि यह कैसे करें।


4

उन्हें न जोड़ने का एकमात्र कारण यह है कि यह कमांड के टैब को पूरा करने को धीमा कर देता है (क्योंकि अधिक निर्देशिकाओं की खोज की जाती है) और कम प्रभावी (क्योंकि कमांड से स्पुरियस मैच होने की अधिक संभावना है जो गैर-रूट का उपयोग करने के लिए समझ में नहीं आता है )।

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