ฉันมีสคริปต์ชื่อ "somescript" ซึ่งมีสิทธิ์อนุญาตสำหรับทุกคน (755) แต่เมื่อฉันพยายามเรียกใช้กับผู้ใช้ที่ไม่ใช่รูทมันจะถามรหัสผ่านรูท ฉันได้ลองตั้งค่าเป็น 4755 โดยไม่มีโชค ผู้ใช้ผู้ดูแลระบบและผู้ใช้ที่มีรหัสผ่านรูทเท่านั้นจึงจะเรียกใช้สคริปต์ได้ในขณะนี้
ฉันจะสร้างมันขึ้นมาได้อย่างไรเพื่อให้ผู้ใช้สามารถเรียกใช้สคริปต์ (แต่ไม่สามารถเปลี่ยนแปลงได้)
-rwxr-xr-x 1 root group1 2841 Jul 8 2014 somescript
user@node:~> somescript
root's password:
แก้ไข: หลังจาก tring Setuid และ Setgid และเห็นพวกเขาไม่ทำงานฉันตรวจสอบมากขึ้นผ่านสคริปต์และพบว่าสคริปต์กำลังตรวจสอบหารูทชื่อผู้ใช้หากไม่ดำเนินการผ่าน sudo ซึ่งบังคับให้ใช้รหัสผ่านรูท การแสดงความคิดเห็นสคริปต์นี้ควรทำให้มันทำงานผ่านการตั้งค่า setuid เนื่องจากเจ้าของเป็นรูท
if [ "$uid" != "root" ]
then
exec sudo /someplace/somescript
else