Difference Between “su” and “sudo”.

ในการทำการบนระบบปฏิบัติการ Linux มีระบบความมั่นคงซึ่งเป็นสิ่งที่คู่กับระบบปฏิบัติการนี้อยู่แล้ว โดยมีหนทางหนึ่งที่จะเพิ่มระบบความมั่นคงใน Linux คือการจัดการด้านผู้ใช้ (User Management Policy and Permission) โดยปกติแล้วผู้ใช้งานแบบปกติจะไม่ได้สิทธิ์ที่จะใช้การปฏิบัตการใดๆ บนระบบอยู่แล้ว

ถ้าหากผู้ใช้งานปกติที่ต้องการการใช้งานบนระบบปฏิบัติการนี้โดยใช้งานได้ทุกแอปพลิเคชั่น โดยให้ผู้ใช้งานนั้นใช้คำสั่ง “su” หรือ “sudo”

ข้อแตกต่างระหว่าง “su” และ “sudo”

“su” จะเป็นการบังคับการใช้งานและเปิดเผย Root Password แก่ผู้ใช้งานอื่นๆ แต่ “sudo” อาจจะทำให้การใช้งานคำสั่งที่เกี่ยวข้องกับระบบปฏิบัติการนั้น ปราศจาการใช้งาน Root Password โดยตรง โดย “sudo” จะเป็นตัวกำหนดให้ใช้ Password ของผู้ใช้งานนั้นๆ เอง เช่น update, upgrade, เปลี่ยน IP Address เป็นต้น

“su” คือ การทำให้ผู้ใช้งานอยู่ในกลุ่มของ Root binary (setuid) ซึ่งจะใช้งานคำสั่งของ Root บนการให้สิทธิ์แก่ผู้ใช้นั้นและใช้งานโดยผ่าน Password ของผู้ใช้งานเอง โดยการเพิ่มคำสั่งนำหน้าคำสั่งอื่นๆ โดย “sudo”

$ sudo visudo

โดยตั้งค่าตามตาราง

# User privilege specification
root ALL=(ALL:ALL) ALL
NewUsername ALL=(ALL:ALL) ALL <<<<<< เพิ่ม Username ที่ต้องการต่อจากบรรทัด Root โดยบรรทัดนี้จะให้สิทธิ์เทียบเท่า Root เพราะการตั้งค่า

เหมือนกับ Root ทั้งหมด

NewUsername Test.webserver.com= (NewUsername2) /user/bin/command1 <<<<<< กำหนดให้ NewUsername2 สามารถใช้งานคำสั่ง command1 ได้

เท่านั้น โดยผ่านสิทธิ์เทียบเท่า Root

หมายเหตุ : ขั้นตอนการเพิ่มผู้ใช้งานต้องอยู่ในสิทธิ์ของ Root เท่านั้น

Reference: http://www.tecmint.com/su-vs-sudo-and-how-to-configure-sudo-in-linux/

https://www.digitalocean.com/community/tutorials/how-to-add-delete-and-grant-sudo-privileges-to-users-on-a-debian-vps