रूट खाते के लिए वर्तमान चूक /etc/passwd
है root:x:0:0:root:/root:/bin/bash
।
इसे सेट क्यों नहीं किया root:x:0:0:root:/root:/usr/sbin/nologin
?
रूट खाते के लिए वर्तमान चूक /etc/passwd
है root:x:0:0:root:/root:/bin/bash
।
इसे सेट क्यों नहीं किया root:x:0:0:root:/root:/usr/sbin/nologin
?
जवाबों:
यदि ऐसा होता, तो आप केवल sudo
एक समय में एक के साथ कमांड चला सकते थे, लेकिन आप रूट शेल शुरू नहीं कर पाएंगे। एक रूट शेल कई मामलों में सुविधाजनक है, उदाहरण के लिए यदि आप एक पंक्ति में कई कमांड को रूट के रूप में चलाने की योजना बना रहे हैं।
विशेष रूप से, आप नहीं चला सकते हैं sudo -i
, जैसा कि एलेक्सपी ने उल्लेख किया है। से man sudo
:
-i, --login Run the shell specified by the target user's password database entry as a login shell.
sudo /bin/bash
ऐसा करने के लिए काम नहीं करता है?
sudo -s
मुझे लगता है कि अधिक होगा (एक रूट शेल, लेकिन रूट लॉगिन शेल नहीं)। हालांकि यह एक अच्छा बिंदु है - और वास्तव में sudo -s
रूट के शेल होने पर भी काम करने लगता है/usr/sbin/nologin
-i
, -s
, /bin/bash
, और इतने सिर्फ आदेशों की एक श्वेत सूची की अनुमति देकर पर, sudoers फ़ाइल के लिए दस्तावेज़ देखें। यह इतना महीन दाने वाला है, कि उदाहरण के लिए यह संभव है कि उपयोगकर्ताओं को /etc/init.d/someservice restart
बिना चलाने के लिए रूट के रूप में चलाने की अनुमति दी जाए /etc/init.d/someservice stop
। लेकिन ubuntu डिफ़ॉल्ट बस के लिए कोई पासवर्ड सेट करने के लिए है root
और व्यवस्थापक उपयोगकर्ताओं sudo के साथ सब कुछ करने के लिए अनुमति देते हैं। संभवतः तर्क एक है) एक से अधिक व्यवस्थापक उपयोगकर्ता और बी) व्यवस्थापक उपयोगकर्ता को रूट खाते के लिए दूसरा पासवर्ड याद रखने की आवश्यकता नहीं है।
अल्बर्टो सेंटिनी के सूडो उत्तर के अलावा, एक और (बेहतर) उत्तर है। यदि रूट का शेल कुछ ऐसी चीज़ पर सेट होता है जो शेल नहीं है, तो एकल उपयोगकर्ता बूट नहीं करता है। sulogin
गैर-विलुप्त शेल या पूरी तरह से टूटे हुए शेल जैसी चीजों के लिए वसूली होती है , लेकिन यह काम नहीं करेगा यदि शेल एक वैध शेल प्रतीत होता है लेकिन वास्तव में शेल नहीं है।
आप sudo
शेल को निर्दिष्ट करके एक शेल प्राप्त करने के लिए सीधे भी कर सकते हैं, sudo
इसलिए यह अच्छी सुरक्षा भी नहीं है।
sudo -i
?