ประโยชน์ที่แท้จริงของการกำหนดสิทธิ์ sudo ให้กับผู้ใช้แทนที่จะใช้รูทคืออะไร


25

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

หากผู้ใช้ที่สร้างขึ้นใหม่สามารถทำหน้าที่เหมือนกับผู้ใช้รูทได้ประโยชน์ที่แท้จริงของการทำสิ่งนี้คืออะไร?


7
sudoer ไม่สามารถทำทุกอย่างที่รูททำได้เฉพาะรูทที่อนุญาตให้ sudoers ทำการ sudo และ sudoer ก็ยังต้อง sudo คำสั่ง สุดท้าย sudoers sudo สิ่งต่าง ๆ เป็นบัญชีผู้ใช้ของตนเองก่อนหมายความว่าพวกเขาไม่จำเป็นต้องเข้าสู่ระบบในฐานะ root และที่สองช่วยให้คุณดูว่าใคร sudid บางสิ่งบางอย่าง
KeithS

คำตอบ:


48

มีประโยชน์หลายประการในการใช้การsudoส่งรหัสผ่านรูท ในลำดับใดไม่มี:

  • คุณไม่ได้ให้รหัสผ่านรูทของคุณ
    ตามกฎทั่วไปถ้ามีคนออกจาก บริษัท ของคุณและพวกเขารู้รหัสผ่านรูทคุณต้องเปลี่ยนรหัสผ่านเหล่านั้นทุกที่ ด้วยการจัดการการกำหนดค่าที่เหมาะสมนี่เป็นเรื่องน่ารำคาญเล็กน้อย ไม่ว่ามันจะเป็นงานที่ยิ่งใหญ่

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

  • คุณสามารถจัดการการให้การอนุญาตจากส่วนกลาง sudoสนับสนุนการกำหนดค่า LDAP ซึ่งหมายความว่าทุกระบบใน บริษัท ของคุณสามารถดูเซิร์ฟเวอร์ LDAP ส่วนกลางเพื่อพิจารณาว่าใครได้รับอนุญาตให้ทำอะไร
    ต้องการอนุญาต (หรือไม่อนุญาต) ใครบางคน? เปลี่ยนการกำหนดค่า sudoers ใน LDAP และระบบทั้งหมดของคุณจะได้รับการอัพเดตทันที

  • มีเส้นทางการตรวจสอบเป็น
    ด้วยข้อยกเว้นของผู้ใช้ที่ได้รับอนุญาตให้ทำsudo su -, sudo shหรือสิ่งที่เทียบเท่าsudoจะผลิตตรวจสอบเส้นทางที่ใช้วิ่งสิ่งที่คำสั่ง
    (นอกจากนี้ยังจะสร้างรายชื่อของคนที่ให้เปลือกหอยที่ไม่ถูกบล็อกเพื่อให้คุณสามารถชี้นิ้วไปที่พวกเขาและฟ่อในการไม่อนุมัติ)

  • sudoดีกว่าการรูท ทุกคนให้ความสำคัญกับsudoวิธีการทำสิ่งต่าง ๆ เช่นsu peruser แต่นั่นไม่ใช่ทั้งหมดที่ดีสำหรับมัน
    สมมติว่า Alice เป็นผู้รับผิดชอบต่อการสร้างซอฟต์แวร์เฉพาะ แต่ Bob ควรจะสามารถเรียกใช้สคริปต์การสร้างได้เช่นกัน คุณสามารถให้ Bob รายการใน sudoers ที่ให้เขาเรียกใช้สคริปต์สร้างเป็นผู้ใช้ของอลิซ (ใช่แน่นอนมีวิธีที่ดีกว่ามากในการจัดการกับกรณีนี้ แต่หลักการของLet user A run a program as user Bมีประโยชน์ ... )
    คุณยังได้รับประโยชน์จากหลักฐานการตรวจสอบทั้งหมดที่ฉันกล่าวถึงข้างต้นเมื่อคุณทำเช่นนี้ ...


1
คำตอบที่มีประโยชน์มาก - ถ้าฉันรู้ (และฉันหมายถึงด้วยความมั่นใจ 100%) ว่าฉันจะเป็นคนเดียวที่จัดการเซิร์ฟเวอร์เดียว แต่คุณเห็นประโยชน์มากมายในการกำหนดสิทธิ์ sudo ให้กับผู้ใช้รายอื่น (ซึ่งจะเป็นตัวฉันเอง) นอกเหนือจากการป้องกันตัวเองจากการทำอะไรบางอย่างผิดพลาด?
JM4

3
@ JM4 ความสอดคล้องและแนวปฏิบัติที่ดีสำหรับหนึ่งวันในอนาคตเมื่อคุณทำงานในสภาพแวดล้อมที่มีขนาดใหญ่ขึ้น จากมุมมองที่ใช้งานได้จริงคุณไม่ควรลงชื่อเข้าใช้ในฐานะรูทโดยตรงเว้นแต่ว่าคุณอยู่บนคอนโซลจริงเพื่อแก้ไขสิ่งที่ถูกปิดบังไว้อย่างดีดังนั้นsudoเมื่อเทียบกับsuความแตกต่างทางวิชาการ - คุณจะต้องกระโดดข้ามห่วงหนึ่งหรืออื่น ๆ การใช้sudoให้โอกาสแก่คุณในการใช้หลักการของสิทธิพิเศษอย่างน้อยที่สุด (จุดสุดท้ายของฉัน) ในทางปฏิบัติและนั่นเป็นสิ่งที่ต้องพิจารณาอย่างจริงจังเสมอ
voretaq7

2
และใช้visudoเพื่อแก้ไขไฟล์ sudoers ของคุณ
Justin Dearing

3
โปรดทราบว่าคำสั่งแบบโต้ตอบจำนวนมากจะอนุญาตให้ผู้ใช้ข้ามเส้นทางการตรวจสอบ ตัวอย่างเช่นผู้ใช้ที่สามารถsudo viทำได้:! bashภายใน vi
Dietrich Epp

4
@DietrichEpp NOEXECแท็กช่วยในกรณีนั้น
Shane Madden

17

ความแตกต่างหลักคือผู้ใช้รับรองความถูกต้องกับการsudoใช้รหัสผ่านของตนเองในขณะที่มีsuหรือเข้าสู่ระบบรากโดยตรงรหัสผ่านรูทจะใช้

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

sudoมีความสามารถในการ จำกัดว่าคำสั่งใดที่ผู้ใช้แต่ละคนสามารถเรียกใช้ในฐานะรูทดังนั้นผู้ใช้เฉพาะสามารถเข้าถึงการทำงานที่พวกเขาต้องการหากพวกเขาไม่ต้องการการเข้าถึงแบบเต็ม


1
ขอขอบคุณสำหรับความช่วยเหลือของคุณ. ฉันเห็นประโยชน์จากจุดของคุณ แต่ฉันยังมองผู้ใช้พื้นฐานถึงผู้ใช้รูทว่าเป็นจุดตรวจสอบสิทธิ์สองเท่าเพราะฉันได้ปิดใช้งานการเข้าสู่ระบบผู้ใช้รูทจาก ssh บนเซิร์ฟเวอร์ของฉัน
JM4

4

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


2

ใช่แน่นอน - จากมุมมองการควบคุมและการบันทึก sudo ดีกว่ามาก

ตัวอย่างเช่นหากคุณบันทึกเหตุการณ์เดียวในบันทึกคือคุณไม่ได้ทำอะไร อะไรก็ตามหลังจากนั้นก็เป็นรูต และถ้าคุณเคยดูบันทึกใน Unix / Linux คุณก็รู้ว่ารูทเป็นภาระของสิ่งต่างๆ

Sudo ในทางกลับกันบันทึกทุกอย่างสวยมากเหมือนผู้ใช้ที่มา


0

การใช้ sudo ทำให้ผู้ใช้ที่ประสงค์ร้ายเข้าถึงระบบได้ยากขึ้น เมื่อมีบัญชีรูทที่ปลดล็อคผู้ใช้ที่เป็นอันตรายจะรู้ชื่อผู้ใช้ของบัญชีที่เธอต้องการถอดรหัสก่อนที่จะเริ่ม เมื่อบัญชีรูทถูกล็อคผู้ใช้จะต้องกำหนดชื่อผู้ใช้และรหัสผ่านเพื่อเจาะเข้าสู่ระบบ

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