ความแตกต่างที่ใหญ่ที่สุดคือกับคุณไม่ต้องใช้รหัสผ่านรากเพื่อเรียกใช้คำสั่งเป็นรากที่คุณต้องการสำหรับsudo
su
คุณต้องใช้รหัสผ่านรูทเพื่อเพิ่มบางคนลงในsudoers
ไฟล์ แต่หลังจากนั้นบุคคลนั้นสามารถเรียกใช้ทั้งหมดหรือบางส่วน (ถ้าคุณ จำกัด ไว้) เป็นรูทโดยไม่ต้องใช้รหัสผ่านเพิ่มเติม
ความแตกต่างอื่น ๆ คือตามที่คุณบันทึกไว้sudo
ช่วยให้สามารถควบคุมคำสั่งที่สามารถรันได้อย่างละเอียดยิ่งขึ้น
สำหรับรายละเอียดของรูปแบบของไฟล์วิ่งsudoers
man sudoers
คุณจะพบตัวอย่างของการอนุญาตให้เรียกใช้คำสั่งบางอย่างเป็นรูทเท่านั้น โครงสร้างพื้นฐานของแต่ละบรรทัดคือ:
user_list host_list = cmd_list
cmd_list สามารถรวมรายละเอียดของผู้ใช้ที่ผู้ใช้จริงได้รับอนุญาตให้สลับไป ตัวอย่างเช่นคุณอาจอนุญาตให้ผู้ดูแลเว็บเปลี่ยนเป็น wwwroot เพื่อเริ่ม apache ใหม่ แต่ไม่ให้รูท นอกจากนี้ยังสามารถรวมตัวเลือกอื่น ๆ เช่นจำเป็นต้องใช้รหัสผ่านผู้ใช้ก่อนที่จะเปลี่ยน (นี่คือค่าเริ่มต้น)
ตัวอย่างบรรทัดอาจเป็น:
joe ALL=(ALL) ALL
ซึ่งหมายความว่า: ให้ joe รันคำสั่งใด ๆ บนโฮสต์ใด ๆ ในฐานะผู้ใช้ใด ๆ บรรทัดที่เข้มงวดมากขึ้นอาจเป็น:
joe ALL=(operator) /usr/local/ops/
ซึ่งหมายความว่า: ให้ joe รันคำสั่งใด ๆ ในไดเร็กทอรี / usr / local / ops ในฐานะผู้ใช้ "โอเปอเรเตอร์"
มีตัวอย่างมากมายในตอนท้ายของหน้า man sudoers
คุณควรแก้ไขด้วยคำสั่ง/etc/sudoers
visudo
การตรวจสอบนี้จะตรวจสอบว่าไฟล์ถูกกฎหมายและช่วยป้องกันคุณจากการทำลายไฟล์โดยไม่ตั้งใจ
sudo
มันเป็นสิ่งประดิษฐ์ที่น่ากลัว