रूट खाते के लिए वर्तमान चूक /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?