मैं एक 'के साथ भी sudo के साथ एक रूट शेल क्यों शुरू कर सकता हूं! 'इसकी छाया में प्रवेश?


9
$cat /etc/passwd |grep -i root
root:x:0:0:root:/root:/bin/bash

$sudo cat /etc/shadow |grep -i root
root:!:17179:0:99999:7:::

छाया फ़ाइल के दूसरे क्षेत्र में, !इसका अर्थ है कि रूट उपयोगकर्ता लॉगिन नहीं कर सकता है लेकिन मैं रूट उपयोगकर्ता को लॉगिन क्यों कर सकता हूं sudo su?

मैं क्यों द्वारा जड़ उपयोगकर्ता के लिए लॉग इन नहीं कर सकता su rootया su -?


1
"छाया फ़ाइल के दूसरे क्षेत्र में; मतलब रूट उपयोगकर्ता लॉगिन नहीं कर सकता है" नहीं, यह नहीं है। आपने इसे कहां सुना?
लाइटवेट दौड़ कक्षा

@LightnessRacesinOrbit, इसका क्या मतलब है?
14:27 पर जॉर्ज उडोसन

@ जॉर्ज: मुरु ने अपने उत्तर में मैनुअल को उद्धृत किया और इसे विस्तार से बताया। आपको प्रलेखन पढ़ना चाहिए!
ऑर्बिट

जवाबों:


15

एक !में shadowप्रवेश के एन्क्रिप्टेड पासवर्ड फ़ील्ड का मतलब कोई पासवर्ड इसके खिलाफ प्रमाणित कर सकते हैं कि। से man shadow:

If the password field contains some string that is not a valid
result of crypt(3), for instance ! or *, the user will not be able
to use a unix password to log in (but the user may log in the
system by other means).

जैसा कि मैनुअल कहता है, इसका मतलब यह नहीं है कि आप रूट के रूप में लॉगिन नहीं कर सकते हैं। इसका मतलब सिर्फ इतना है कि आप रूट खाते के लिए पासवर्ड का उपयोग करके रूट के रूप में लॉगिन नहीं कर सकते हैं। (आप SSH कुंजी का उपयोग करके SSH के माध्यम से रूट के रूप में लॉगिन कर सकते हैं, उदाहरण के लिए, यदि आपने इसे पहले कॉन्फ़िगर किया था, भले ही खाता लॉक हो।)

sudoआम तौर पर आपके पासवर्ड से प्रमाणित होता है , रूट का नहीं। इसे किसी एक में targetpw, rootpwया runaspwमें सेट करके बदला जा सकता है sudoers। यदि आप इन विकल्पों में से एक सेट करते हैं, और पासवर्ड लॉक होने पर पासवर्ड का उपयोग करने का प्रयास करते हैं, तो यह विफल हो जाएगा


महान, इसका मतलब है कि मैं किसी भी उपयोगकर्ता को sudo द्वारा अपने पासवर्ड के साथ स्विच कर सकता हूं या तो यह सक्रिय उपयोगकर्ता या लॉक उपयोगकर्ता है, है ना?
सिनियोश

1
@ सिनोश ने कोई अन्य प्रतिबंध नहीं माना, हाँ
मूरू

4

अब इसके अनुसार आज्ञाओं को देखें:

  1. sudo su:

    • sudosuरूट विशेषाधिकारों के साथ कमांड (स्थानापन्न उपयोगकर्ता) चलाता है, भले ही यह /etc/shadowकहता है या इसके पास root:!:17179:0:99999:7:::अभी भी रूट विशेषाधिकार के साथ कमांड चलाएगा।
  2. su -या su root:

    • यह वास्तव में रूट उपयोगकर्ता पर स्विच करता है जो फ़ाइल से लॉग इन नहीं कर सकता है इसलिए इन कमांड का उपयोग करने से काम नहीं चलेगा। अगर आप चाहते हैं कि वे काम करें तो रूट अकाउंट को पासवर्ड देकर अनलॉक करना होगा।/etc/shadow

सारांश:

su -0r su rootउपयोगकर्ता रूट पर स्विच करता है, इसलिए इसका अस्तित्व नहीं होता है, लेकिन यह विशेषाधिकारों के साथ स्विच कमांडsudo su चलाता है , इसलिए इस मामले में यह तब होगा जब आप समूह में होंगे। आप वास्तव में इस मामले में मूल के रूप में प्रवेश नहीं कर रहे हैं, बस जड़ के रूप में कार्य कर रहे हैं इसलिए यह जाएगा।rootsudo

स्रोत: 'सु -' और 'सु जड़' में क्या अंतर है?


धन्यवाद, इसका मतलब sudo suहै कि छाया फ़ाइल में पास फ़ील्ड नहीं दिखता है?
सिनॉश

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