รู้จักกับ sudo
ถ้าเครื่องลินุกซ์เซิร์ฟเวอร์ของท่าน มีผู้ดูแลช่วยกันหลายคน คงไม่ค่อยดีแน่ ถ้าหากจะให้ทุกคนล็อกอินโดยใช้ผู้ใช้ root เนื่องจากเป็นการยากที่จะตรวจสอบว่า ใครทำอะไร แก้ไข เปลี่ยนแปลงระบบตรงไหนบ้าง sudo เป็นเครื่องมือที่จะมาช่วยเหลือตรงจุดนี้
sudo เป็นเครื่องมือที่อนุญาตให้ผู้ใช้บางคน หรือบางกลุ่ม สามารถมีสิทธิ์ในการเข้าถึงทรัพยากรบางสิ่งบางอย่าง ได้เหมือนผู้ใช้ root หรือในบางทีสามารถกำหนดให้มีสิทธิ์เท่าเทียมกับ root ก็ได้ ซึ่งขึ้นอยู่กับการปรับแต่งค่าต่างๆ ในไฟล์ /etc/sudoers
การปรับตั้งค่าต่างๆ ของ sudo
ในการปรับตั้งค่าต่างๆ ของ sudo นั้น จะทำการแก้ไขในไฟล์ /etc/sudoers โดยมีรูปแบบของการปรับแต่งค่าต่างๆ ดังนี้
ชื่อผู้ใช้/กลุ่ม ชื่อเครื่องเซิร์ฟเวอร์ = ( รันคำสั่งด้วยผู้ใช้ใด ) คำสั่ง
ตัวอย่างการใช้งาน
แบบที่ 1. กำหนดแบบระบุผู้ใช้งาน
จากก่อนหน้านี้ ( การจัดการกับบัญชีผู้ใช้ ) เราได้ทำการเพิ่มผู้ใช้งานที่ชื่อว่า chujai กับ somsak อยู่ในกลุ่มของ admin ซึ่งสามารถกำหนดให้ chujai กับ somsak ทำหน้าที่ได้เหมือน root ทุกประการ โดยสามารถใช้คำสั่งใดก็ได้ และใช้กับโฮสต์ใดก็ได้ ดังนี้
chujai , somsak ALL=(ALL) ALL
แบบที่ 2 ระบุแบบกลุ่ม
ในการปรับแต่ง สามารถกำหนดให้กลุ่ม admin สามารถทำหน้าที่เหมือนผู้ใช้ root ได้ทุกประการ โดยไม่จำเป็นต้องระบุเป็นชื่อผู้ใช้ก็ได้ ดังนี้
%admin ALL=(ALL) ALL
แบบที่ 3 กำหนดแบบระบุคำสั่งหรือการเข้าถึงไฟล์/ไดเรคเทอรี
ในบางครั้งผู้ดูแลระบบต้องการให้ผู้ใช้งานบางคน สามารถใช้งานบางคำสั่งที่เป็นของ root เท่านั้น หรือตรวจสอบไฟล์บางไฟล์ ก็สามารถกำหนดได้เช่นกัน เช่นต้องการให้ผู้ใช้ sawasdee สามารถรีสตาร์ทเครื่องและสามารถอ่านข้อมูลทางด้านความปลอดภัยของระบบ ก็สามารถทำได้ดังนี้
sawasdee ALL=(ALL) /usr/bin/reboot , /bin/cat /var/log/secure
หลังจากที่ทำการปรับแต่งเสร็จเรียบร้อยแล้ว ลองตรวจสอบการเข้าถึงข้อมูล หรือคำสั่งต่างๆ ตัวอย่างเช่น ตรวจสอบด้วยผู้ใช้ sawasdee ว่าสามารถอ่านข้อมูลในไฟล์ /var/log/secure ได้หรือไม่ ดังนี้
ขั้นตอนที่ 1
ล็อกอินด้วยผู้ใช้ sawasdee แล้วลองตรวจสอบว่าสามารถอ่านไฟล์ /var/log/secure แบบไม่ใช้คำสั่ง sudo ได้หรือไม่ ดังนี้
[sawasdee@netserv ~]$ cat /var/log/secure cat: /var/log/secure: Permission denied
จะเห็นว่า ไม่สามารถอ่านข้อมูลได้ ต้องมีสิทธ์ของผู้ดูแลระบบ หรือ ต้องมีสิทธิ์ในการอ่านไฟล์นี้ เท่านั้น
ขั้นตอนที่ 2
ทำการทดสอบแบบใช้คำสั่ง sudo ซึ่งจะมีรหัสผ่านขึ้นมา ให้เราใส่รหัสผ่านของผู้ใช้คนที่กำลังรันคำสั่งอยู่ เช่น ขณะนี้เราทำการล็อกอินด้วยผู้ใช้ sawasdee ดังนั้นในการรันคำสั่ง sudo แล้วมีรหัสผ่านขึ้นมา ให้เราใส่รหัสผ่านของ sawasdee ดังนี้
| [sawasdee@netserv ~]$ sudo cat /var/log/secure We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. Password: ใส่รหัสผ่านของผู้ใช้ ( ไม่ใช่รหัสผ่านของ root ) ... May 15 00:42:42 netserv groupadd[3265]: new group: name=webmaster, GID=501 May 15 00:42:46 netserv groupadd[3269]: new group: name=admin, GID=502 May 15 00:42:49 netserv groupadd[3273]: new group: name=developer, GID=503 ... |
- Add new comment






- 1261 reads


