ทำไมรหัสผ่าน 'sudo' แตกต่างจากรหัสผ่าน 'su root'


11

ในเครื่องส่วนตัวของฉันฉันมักจะพิมพ์sudoต่อหน้าคำสั่งบางอย่างเพื่อให้งานการดูแลระบบสำเร็จ ผมหวังที่จะหลีกเลี่ยงการทำเช่นนี้ตลอดทั้งวันโดยการพิมพ์และการให้รหัสผ่านเดียวกันฉันมักจะทำเพื่อsu root sudoอย่างไรก็ตามรหัสผ่านทั้งสองนั้นไม่เหมือนกัน (ฉันไม่ทราบวิธีลงชื่อเข้าใช้su root) การรันคำสั่งที่sudoแตกต่างจากการล็อกอินด้วยsu rootและการรันคำสั่งเดียวกันหรือไม่?

ฉันคิดsudoและsu rootเหมือนกันเพราะเมื่อฉันพิมพ์sudo whoamiฉันได้รับrootตรงข้ามกับwhoamiที่ฉันได้รับชื่อผู้ใช้


ฉันเจอชุดข้อความที่เก่ากว่านี้เนื่องจากมีการเชื่อมโยงกับคำถามที่ฉันถาม คำตอบนั้นมีข้อมูลมาก แต่ก็ทิ้งคำถามไว้ บนเครื่องส่วนบุคคล (ผู้ใช้หนึ่งคน) คุณจะได้รับรหัสผ่านที่แตกต่างกันสำหรับรูตได้อย่างไรขึ้นอยู่กับว่าคุณใช้ sudo หรือ su root ไม่มีรหัสผ่านรูทเดียวที่ถูกกำหนดไว้เมื่อติดตั้งลีนุกซ์?
fixer1234

@ fixer1234 ตามที่อธิบายไว้ในคำตอบของ John1024เมื่อคุณใช้sudoระบบจะขอรหัสผ่านเพื่อยืนยันตัวตนของคุณจากนั้นตรวจสอบ/etc/sudoersเพื่อดูว่าคุณได้รับอนุญาตให้เรียกใช้ sudo หรือไม่ เมื่อคุณใช้suระบบคุณจะต้องป้อนข้อมูลรหัสผ่านของผู้ใช้ที่คุณกำลังเปลี่ยนไป (ฉันรู้ว่าตอนนี้เป็นคำถามที่เก่ามากแต่ฉันต้องการเพิ่มความกระจ่างเพื่อประโยชน์ของผู้ชมในอนาคต)
anonymoose

@ ไม่ระบุชื่อคำถามนี้เกี่ยวกับเครื่องส่วนตัวของ OP โดยทั่วไปเมื่อคุณติดตั้ง Linux บนเครื่องของคุณเองคุณจะรู้ว่าคุณให้รหัสผ่านที่แตกต่างจากผู้ใช้ปกติของคุณหรือไม่ คำถามแสดงให้เห็นว่า OP รู้สึกประหลาดใจเมื่อพบว่ารูทนั้นมีรหัสผ่านที่แตกต่างกัน
fixer1234

1
@ fixer1234 OP อาจไม่ได้ตั้งค่ารหัสผ่านรูทเพื่อเริ่มต้น โปรแกรมติดตั้งของ Ubuntu ไม่ขอรหัสผ่านรูทและฉันแน่ใจว่า distros อื่นไม่ทำ
anonymoose

คำตอบ:


17

ตรงกันข้ามกับการใช้งานทั่วไปของพวกเขาที่จะทำให้คุณคิดsuและsudoไม่ได้มีไว้สำหรับการเข้าสู่ระบบ (หรือดำเนินการกระทำ) ในฐานะรูท

suอนุญาตให้คุณเปลี่ยนข้อมูลประจำตัวของคุณกับบุคคลอื่น ด้วยเหตุผลนี้เมื่อคุณพิมพ์suระบบจะต้องตรวจสอบว่าคุณมีข้อมูลรับรองสำหรับผู้ใช้เป้าหมายที่คุณต้องการเปลี่ยน

sudoแตกต่างกันเล็กน้อย การใช้sudoช่วยให้คุณสามารถเรียกใช้คำสั่งบางอย่าง (หรือทั้งหมดขึ้นอยู่กับการกำหนดค่า) เป็นคนอื่น ข้อมูลประจำตัวของคุณจะถูกใช้เพื่อกำหนดว่าคำสั่งประเภทใดที่sudoจะทำงานให้คุณภายใต้ข้อมูลประจำตัวของบุคคลอื่น: หากคุณเป็นผู้ใช้ที่เชื่อถือได้ (ในแง่ที่ว่าระบบดูแลระบบเชื่อใจคุณ) คุณจะได้รับอนุญาต นักศึกษาฝึกงาน นี่คือเหตุผลที่sudoต้องยืนยันตัวตนของคุณเองมากกว่าของผู้ใช้เป้าหมาย

กล่าวอีกนัยหนึ่งการพยายามที่จะsuให้คนที่คุณไม่ชอบนั้นเป็นความพยายามในการเรียกเก็บเงินจากการซื้อสินค้าของคุณไปยังบัตรเครดิตที่ถูกขโมยในขณะที่ใช้งานsudoก็เหมือนกับการขายรถยนต์ของเพื่อนคุณด้วยพร็อกซี่ทางกฎหมาย

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

นอกจากนี้ระบบที่มาก่อนกำหนดที่มีsudoการเข้าถึงบัญชีมักจะมีรากปิดการใช้งาน (รหัสผ่าน root ไม่ได้) คุณสามารถเปิดใช้ว่าการใช้คำสั่งหลังจากที่กลายเป็นรากผ่านpasswdsudo su


สำหรับผู้ใช้ตามบ้านคุณจะแนะนำให้ตั้งค่ารหัสผ่านรูทนอกเหนือจากการมีสิทธิ์ของผู้ใช้ (ในsudo) หรือไม่
Royi

3

sudoถูกใช้เพื่อเลื่อนระดับสิทธิ์ผู้ใช้ไปยังระดับรูทชั่วคราวในขณะที่su rootใช้เพื่อสร้างเชลล์ใหม่ที่มีรูทเป็นผู้ใช้


2

สามารถกำหนดค่าได้ * แต่โดยค่าเริ่มต้น "sudo" จะขอรหัสผ่านจากคุณ มันแค่พยายามทำให้แน่ใจว่าเป็นคุณไม่ใช่คนที่ใช้แป้นพิมพ์ในขณะที่คุณกำลังรับกาแฟ

ในทางตรงกันข้าม "su root" ขอให้คุณใช้รหัสผ่านรูท


* หาก targetpw ใน / etc / sudoers เป็นเท็จ (ค่าเริ่มต้น) "sudo" จะขอรหัสผ่านจากคุณ หากเป็นจริง "sudo" จะขอรหัสผ่านของคุณจากรูทหรือหากคุณระบุผู้ใช้อื่นด้วยตัวเลือก "-u" รหัสผ่านของผู้ใช้นั้น


1

เพื่อประโยชน์ของผู้มาใหม่ในการค้นหานี้มีวิธีง่าย ๆ ในการรูทจนกว่าคุณจะออก:

     sudo -iE

จะทำให้คุณมีปฏิสัมพันธ์และรักษาสภาพแวดล้อมของคุณ แต่ตอนนี้ในฐานะที่เป็นรูต

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