อะไรคือความแตกต่างระหว่าง Sudo และ Su ใน Linux?

หากคุณเป็นผู้ใช้ Linux คุณอาจเคยเห็นการอ้างอิงทั้ง sudo และ su บทความที่นี่เกี่ยวกับ How-To Geek และที่อื่น ๆ แนะนำให้ผู้ใช้ Ubuntu ใช้ sudo และผู้ใช้ Linux อื่น ๆ เพื่อใช้ su แต่อะไรคือความแตกต่าง?

Sudo และ su เป็นสองวิธีที่แตกต่างกันในการรับสิทธิ์รูท แต่ละฟังก์ชั่นในลักษณะที่แตกต่างกันและการกระจาย Linux ที่แตกต่างกันจะใช้การกำหนดค่าที่แตกต่างกันโดยค่าเริ่มต้น

ผู้ใช้รูท

ทั้ง su และ sudo ใช้เพื่อรันคำสั่งด้วยสิทธิ์ root ผู้ใช้รูทนั้นเทียบเท่ากับผู้ใช้ผู้ดูแลระบบบน Windows - ผู้ใช้รูทมีสิทธิ์สูงสุดและสามารถทำอะไรก็ได้กับระบบ ผู้ใช้ทั่วไปบน Linux ทำงานโดยมีสิทธิ์ลดลงตัวอย่างเช่นไม่สามารถติดตั้งซอฟต์แวร์หรือเขียนลงในไดเร็กทอรีระบบได้

ในการทำสิ่งที่ต้องใช้สิทธิ์เหล่านี้คุณจะต้องได้รับสิทธิ์เหล่านี้ด้วย su หรือ sudo

ซูกับซูโด

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

เมื่อคุณรันคำสั่งในรูทเชลล์เสร็จแล้วคุณควรพิมพ์exitเพื่อออกจากรูทเชลล์และกลับไปที่โหมด จำกัด สิทธิ์

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

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

Ubuntu กับ Linux Distributions อื่น ๆ

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

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

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

การกระจายที่ใช้ Ubuntu รวมถึง Linux Mint ยังใช้ sudo แทน su ตามค่าเริ่มต้น

เคล็ดลับเล็กน้อย

Linux มีความยืดหยุ่นดังนั้นจึงไม่ต้องใช้เวลามากในการทำให้ su ทำงานได้เหมือนกับ sudo หรือในทางกลับกัน

ในการรันคำสั่งเดียวในฐานะผู้ใช้ root ด้วย su ให้รันคำสั่งต่อไปนี้:

su -c 'คำสั่ง'

คล้ายกับการรันคำสั่งด้วย sudo แต่คุณต้องใช้รหัสผ่านของบัญชี root แทนรหัสผ่านบัญชีผู้ใช้ปัจจุบันของคุณ

หากต้องการรับรูทเชลล์แบบโต้ตอบเต็มรูปแบบด้วย sudo ให้เรียกใช้sudo –i

คุณจะต้องระบุรหัสผ่านของบัญชีผู้ใช้ปัจจุบันของคุณแทนรหัสผ่านของบัญชีรูท

การเปิดใช้งานผู้ใช้รูทใน Ubuntu

ในการเปิดใช้งานบัญชีผู้ใช้รูทบน Ubuntu ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งรหัสผ่าน โปรดจำไว้ว่า Ubuntu แนะนำให้ต่อต้านสิ่งนี้

sudo passwd root

Sudo จะแจ้งให้คุณป้อนรหัสผ่านบัญชีผู้ใช้ปัจจุบันของคุณก่อนที่คุณจะสามารถตั้งรหัสผ่านใหม่ได้ ใช้รหัสผ่านใหม่ของคุณเพื่อล็อกอินในฐานะรูทจากพร้อมต์ล็อกอินเทอร์มินัลหรือด้วยคำสั่ง su คุณไม่ควรเรียกใช้สภาพแวดล้อมแบบกราฟิกเต็มรูปแบบในฐานะผู้ใช้รูท - นี่เป็นแนวทางปฏิบัติด้านความปลอดภัยที่แย่มากและหลายโปรแกรมจะปฏิเสธที่จะทำงาน

การเพิ่มผู้ใช้ไปยังไฟล์ Sudoers

เฉพาะบัญชีผู้ดูแลระบบใน Ubuntu เท่านั้นที่สามารถรันคำสั่งด้วย sudo คุณสามารถเปลี่ยนประเภทบัญชีผู้ใช้ได้จากหน้าต่างการกำหนดค่าบัญชีผู้ใช้

Ubuntu กำหนดบัญชีผู้ใช้ที่สร้างขึ้นระหว่างการติดตั้งโดยอัตโนมัติเป็นบัญชีผู้ดูแลระบบ

หากคุณใช้การแจกจ่าย Linux อื่นคุณสามารถให้สิทธิ์ผู้ใช้ในการใช้ sudo ได้โดยเรียกใช้คำสั่งvisudoด้วยสิทธิ์ root (ดังนั้นให้รันsuก่อนหรือใช้su -c )

เพิ่มบรรทัดต่อไปนี้ในไฟล์แทนที่ผู้ใช้ด้วยชื่อบัญชีผู้ใช้:

ผู้ใช้ ALL = (ALL: ALL) ALL

กดCtrl-Xแล้วกดYเพื่อบันทึกไฟล์ คุณอาจเพิ่มผู้ใช้ในกลุ่มที่ระบุในไฟล์ได้ด้วย ผู้ใช้ในกลุ่มที่ระบุในไฟล์จะมีสิทธิ์ sudo โดยอัตโนมัติ

เวอร์ชันกราฟิกของ Su

Linux ยังรองรับเวอร์ชันกราฟิกของ su ซึ่งขอรหัสผ่านของคุณในสภาพแวดล้อมแบบกราฟิก ตัวอย่างเช่นคุณสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อรับพร้อมต์รหัสผ่านแบบกราฟิกและเรียกใช้เบราว์เซอร์ไฟล์ Nautilus ด้วยสิทธิ์รูท กดAlt-F2เพื่อเรียกใช้คำสั่งจากกล่องโต้ตอบการทำงานแบบกราฟิกโดยไม่ต้องเรียกใช้เทอร์มินัล

gksu หอยโข่ง

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

Gksu ใช้แบ็กเอนด์ su หรือ sudo ขึ้นอยู่กับการกระจาย Linux ที่คุณใช้

ตอนนี้คุณควรเตรียมพร้อมที่จะเผชิญหน้ากับทั้งซูและซูโด! คุณจะพบทั้งสองอย่างหากคุณใช้ลีนุกซ์รุ่นต่างๆ