ทำไมฉันถึงสามารถเริ่มรูทเชลล์ด้วย 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:::

ในฟิลด์ shadow file ที่!สองหมายความว่าผู้ใช้รูทไม่สามารถเข้าสู่ระบบ แต่ทำไมฉันสามารถเข้าสู่ระบบเพื่อรูทผู้ใช้ได้sudo su?

ทำไมฉันไม่สามารถเข้าสู่ระบบเพื่อใช้ root โดยsu rootหรือsu -?


1
"ในฟิลด์เงาที่สองของไฟล์! หมายถึงผู้ใช้รูทไม่สามารถเข้าสู่ระบบ"ไม่ได้ คุณได้ยินเรื่องนี้ที่ไหน
Lightness Races ที่ Orbit

@LightnessRacesinOrbit มันหมายความว่าอะไร?
George Udosen

@ George: muru อ้างถึงคู่มือในคำตอบของเขาและอธิบายในรายละเอียด คุณควรอ่านเอกสาร!
การแข่งขัน Lightness ใน Orbit

คำตอบ:


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 ด้วยรหัสผ่านของฉันไม่ว่าจะเป็นผู้ใช้ที่ใช้งานอยู่หรือล็อคผู้ใช้ใช่ไหม
Sinoosh

1
@Sinoosh สมมติว่าไม่มีข้อ จำกัด อื่น ๆ ใช่
muru

4

ตอนนี้ลองดูคำสั่งตาม:

  1. sudo su:

    • sudoรันคำสั่งsu(ผู้ใช้สำรอง) ที่มีสิทธิ์รูทดังนั้นแม้ว่าจะมีคำ/etc/shadowว่ากล่าวหรือมีอยู่root:!:17179:0:99999:7:::ก็ตามก็ยังคงรันคำสั่งที่มีสิทธิ์ใช้งานรูต
  2. su -หรือsu root:

    • นี่เป็นการสลับไปยังผู้ใช้รูทซึ่งจาก/etc/shadowไฟล์ไม่สามารถล็อกอินดังนั้นการใช้คำสั่งเหล่านี้จะไม่ทำงาน หากคุณต้องการให้พวกเขาใช้งานได้คุณจะต้องปลดล็อคบัญชีรูทด้วยรหัสผ่าน

สรุป:

su -0r su rootสลับไปที่รูทผู้ใช้ไม่มีอยู่จึงไม่สามารถเกิดขึ้นได้ แต่sudo suรันคำสั่งสวิตช์พร้อมrootสิทธิ์พิเศษดังนั้นในกรณีนี้มันจะไปหากคุณอยู่ในsudoกลุ่ม คุณไม่ได้เข้าสู่ระบบในฐานะ root ในกรณีนี้เพียงแค่ทำหน้าที่เป็นรู

ที่มา: ความแตกต่างระหว่าง 'su -' และ 'su root' คืออะไร?


ขอบคุณหมายความว่าsudo suไม่เห็นช่องผ่านในไฟล์เงา?
Sinoosh

1
@Sinoosh sudo suเป็นวิธีที่ผิดในการทำงานหรือsudo sh sudo bash
บาคุริว
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.