ความแตกต่างระหว่าง Sudo และ Su ใน Linux คืออะไร
หากคุณเป็นผู้ใช้ Linux คุณอาจเห็นการอ้างอิงถึงทั้ง sudo และ su บทความที่นี่เกี่ยวกับ How-To Geek และที่อื่น ๆ แนะนำให้ผู้ใช้ Ubuntu ใช้ผู้ใช้ sudo และ Linux ดิสทริบิวชันอื่น ๆ เพื่อใช้ su แต่สิ่งที่แตกต่างกันคือ?
Sudo และ su เป็นสองวิธีที่แตกต่างกันในการรับสิทธิ์รูท แต่ละฟังก์ชั่นในวิธีที่แตกต่างกันและการแจกแจง Linux ที่แตกต่างกันใช้การกำหนดค่าที่แตกต่างกันตามค่าเริ่มต้น.
ผู้ใช้รูท
ทั้ง su และ sudo ใช้เพื่อรันคำสั่งที่มีสิทธิ์ใช้งานรูท ผู้ใช้รูทนั้นเทียบเท่ากับผู้ใช้ผู้ดูแลระบบบน Windows - ผู้ใช้รูทมีสิทธิ์สูงสุดและสามารถทำอะไรกับระบบได้ ผู้ใช้ปกติบน Linux รันโดยมีสิทธิ์ลดลง - ตัวอย่างเช่นผู้ใช้ไม่สามารถติดตั้งซอฟต์แวร์หรือเขียนไปยังไดเรกทอรีระบบ.
ในการทำสิ่งที่ต้องการการอนุญาตคุณจะต้องได้รับ su หรือ sudo.
ซูกับ Sudo
คำสั่ง su สลับไปที่ผู้ใช้ระดับสูง - หรือผู้ใช้รูท - เมื่อคุณดำเนินการโดยไม่มีตัวเลือกเพิ่มเติม คุณจะต้องป้อนรหัสผ่านของบัญชีรูท นี่ไม่ใช่คำสั่ง su ทั้งหมดที่ทำ - คุณสามารถใช้เพื่อเปลี่ยนเป็นบัญชีผู้ใช้ใด ๆ หากคุณดำเนินการ su bob คำสั่งคุณจะได้รับแจ้งให้ป้อนรหัสผ่านของ Bob และเชลล์จะเปลี่ยนเป็นบัญชีผู้ใช้ของ Bob.
เมื่อคุณรันคำสั่งในรูทเชลล์เสร็จแล้วคุณควรพิมพ์ ทางออก เพื่อออกจากรูทเชลล์และกลับไปที่โหมด จำกัด สิทธิ์.
Sudo รันคำสั่งเดียวพร้อมสิทธิพิเศษรูท เมื่อคุณรัน คำสั่ง sudo, ระบบจะขอให้คุณใส่รหัสผ่านของบัญชีผู้ใช้ปัจจุบันของคุณก่อนที่จะทำงาน คำสั่ง ในฐานะผู้ใช้รูท ตามค่าเริ่มต้น Ubuntu จะจดจำรหัสผ่านเป็นเวลาสิบห้านาทีและจะไม่ถามรหัสผ่านอีกจนกว่าจะครบสิบห้านาที.
นี่คือความแตกต่างที่สำคัญระหว่าง su และ sudo Su สลับคุณเป็นบัญชีผู้ใช้รูทและต้องการรหัสผ่านของบัญชีรูท Sudo รันคำสั่งเดียวพร้อมกับสิทธิ์รูท - มันไม่เปลี่ยนเป็นผู้ใช้รูทหรือต้องการรหัสผ่านผู้ใช้รูทแยกต่างหาก.
Ubuntu และ Linux อื่น ๆ
คำสั่ง su เป็นวิธีดั้งเดิมในการรับการอนุญาตรูทบน Linux คำสั่ง sudo นั้นมีอยู่เป็นเวลานาน แต่ Ubuntu นั้นเป็น Linux ตัวแรกที่ได้รับความนิยมในการใช้งาน sudo-only โดยค่าเริ่มต้น เมื่อคุณติดตั้ง Ubuntu บัญชีรูทมาตรฐานจะถูกสร้างขึ้น แต่ไม่มีการกำหนดรหัสผ่านให้ คุณไม่สามารถเข้าสู่ระบบในฐานะรูทจนกว่าคุณจะกำหนดรหัสผ่านให้กับบัญชีรูท.
มีข้อดีหลายประการในการใช้ sudo แทน su ตามค่าเริ่มต้น ผู้ใช้ Ubuntu จะต้องให้และจดจำรหัสผ่านเดียวในขณะที่ Fedora และดิสทริบิวชันอื่น ๆ ต้องการให้คุณสร้างรหัสผ่านรูทและบัญชีผู้ใช้แยกต่างหากระหว่างการติดตั้ง.
ข้อได้เปรียบอีกประการหนึ่งคือห้ามผู้ใช้เข้าสู่ระบบในฐานะผู้ใช้รูท - หรือใช้ su เพื่อรับรูทเชลล์ - และเปิดรูทเชลล์ให้ทำงานตามปกติ การรันคำสั่งน้อยลงเมื่อรูทเพิ่มความปลอดภัยและป้องกันการเปลี่ยนแปลงทั้งระบบโดยไม่ตั้งใจ.
การแจกแจงตาม Ubuntu รวมถึง Linux Mint ก็ใช้ sudo แทน su ตามค่าเริ่มต้น.
เทคนิคไม่กี่
Linux มีความยืดหยุ่นดังนั้นจึงไม่ต้องทำงานมากนักเพื่อให้ su ทำงานคล้ายกับ sudo - หรือกลับกัน.
ในการรันคำสั่งเดียวในฐานะผู้ใช้รูทด้วย su ให้รันคำสั่งต่อไปนี้:
su -c 'command'
สิ่งนี้คล้ายกับการเรียกใช้คำสั่งด้วย sudo แต่คุณจะต้องใช้รหัสผ่านของบัญชี root แทนรหัสผ่านบัญชีผู้ใช้ปัจจุบันของคุณ.
เพื่อให้ได้รูทเชลล์แบบโต้ตอบที่เต็มไปด้วย sudo ให้เรียกใช้ sudo -i.
คุณจะต้องระบุรหัสผ่านของบัญชีผู้ใช้ปัจจุบันแทนรหัสผ่านของบัญชีรูท.
เปิดใช้งานผู้ใช้รูทใน Ubuntu
หากต้องการเปิดใช้งานบัญชีผู้ใช้รูทบน Ubuntu ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งรหัสผ่าน โปรดจำไว้ว่า Ubuntu แนะนำให้ทำเช่นนี้.
sudo passwd root
Sudo จะขอให้คุณใส่รหัสผ่านบัญชีผู้ใช้ปัจจุบันของคุณก่อนที่คุณจะสามารถตั้งรหัสผ่านใหม่ได้ ใช้รหัสผ่านใหม่ของคุณเพื่อเข้าสู่ระบบในฐานะ root จากพรอมต์การล็อกอินเทอร์มินัลหรือด้วยคำสั่ง su คุณไม่ควรรันสภาพแวดล้อมแบบกราฟิกเต็มรูปแบบในฐานะผู้ใช้รูท - นี่เป็นแนวทางปฏิบัติด้านความปลอดภัยที่แย่มากและหลาย ๆ โปรแกรมจะไม่ทำงาน.
การเพิ่มผู้ใช้ไปยังไฟล์ Sudoers
เฉพาะบัญชีประเภทผู้ดูแลระบบใน Ubuntu เท่านั้นที่สามารถเรียกใช้คำสั่งด้วย sudo คุณสามารถเปลี่ยนประเภทบัญชีผู้ใช้ได้จากหน้าต่างการกำหนดค่าบัญชีผู้ใช้.
Ubuntu กำหนดบัญชีผู้ใช้ที่สร้างขึ้นระหว่างการติดตั้งโดยอัตโนมัติในฐานะบัญชีผู้ดูแลระบบ.
หากคุณใช้การกระจาย Linux อื่นคุณสามารถให้สิทธิ์ผู้ใช้ในการใช้ sudo โดยเรียกใช้ visudo คำสั่งที่มีสิทธิ์ใช้งานรูท (ดังนั้นให้เรียกใช้ su ก่อนหรือใช้งาน ซู -c).
เพิ่มบรรทัดต่อไปนี้ลงในไฟล์แทนที่ ผู้ใช้งาน ด้วยชื่อบัญชีผู้ใช้:
ผู้ใช้ ALL = (ALL: ALL) ALL
กด Ctrl-X แล้ว Y เพื่อบันทึกไฟล์ คุณยังสามารถเพิ่มผู้ใช้ในกลุ่มที่ระบุในไฟล์ ผู้ใช้ในกลุ่มที่ระบุในไฟล์จะมีสิทธิ์แบบ sudo โดยอัตโนมัติ.
รุ่นกราฟิกของ Su
ลีนุกซ์ยังสนับสนุนเวอร์ชั่นกราฟิกของ su ซึ่งถามรหัสผ่านของคุณในสภาพแวดล้อมแบบกราฟิก ตัวอย่างเช่นคุณสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อรับพรอมต์รหัสผ่านแบบกราฟิกและเรียกใช้ไฟล์เบราว์เซอร์ Nautilus พร้อมสิทธิ์การรูท กด Alt-F2 เพื่อเรียกใช้คำสั่งจากไดอะล็อกการรันแบบกราฟิกโดยไม่เรียกใช้เทอร์มินัล.
gksu nautilus
คำสั่ง gksu ยังมีเคล็ดลับอื่น ๆ อีกสองสามข้อ - มันรักษาการตั้งค่าเดสก์ท็อปปัจจุบันของคุณดังนั้นโปรแกรมกราฟิกจะไม่มองออกนอกสถานที่เมื่อคุณเรียกใช้งานในฐานะผู้ใช้อื่น โปรแกรมเช่น gksu เป็นวิธีที่ต้องการในการเปิดใช้งานแอปพลิเคชันกราฟิกที่มีสิทธิ์ใช้งานรูท.
Gksu ใช้แบ็กเอนด์แบบ su หรือแบบ sudo ขึ้นอยู่กับการแจกจ่าย Linux ที่คุณใช้.
ตอนนี้คุณควรเตรียมพร้อมที่จะพบทั้ง su และ sudo! คุณจะพบทั้งคู่ถ้าคุณใช้ลีนุกซ์รุ่นอื่น.