หากนี่เป็นไบนารีปกติคุณสามารถตั้งค่าได้โดยการเรียกใช้
# chmod u+s /path/to/binary
น่าเสียดายที่สคริปต์ไม่สามารถตั้งค่าได้ (คุณทำได้ แต่ไม่สนใจ) เหตุผลสำหรับสิ่งนี้คือบรรทัดแรกของสคริปต์บอกระบบปฏิบัติการว่าตัวแปลใดที่จะเรียกใช้สคริปต์ภายใต้ ตัวอย่างเช่นหากคุณมีสคริปต์ด้วย:
#!/bin/bash
คุณต้องลงเอยจริง ๆ
/bin/bash /path/to/script
เห็นได้ชัดว่าคุณต้องการล่ามที่จะ setuid ซึ่งหมายความว่าสคริปต์ทั้งหมดจะ setuid มันจะไม่ดี
คุณสามารถทำได้ด้วย sudo โดยใส่ต่อไปนี้ในไฟล์ / etc / sudoers ของคุณโดยใช้ visudo
ALL ALL=NOPASSWD: /path/to/script
และตอนนี้ผู้ใช้สามารถเรียกใช้
$ sudo /path/to/script
สิ่งนี้ช่วยให้พวกเขาเรียกใช้สคริปต์โดยไม่ต้องพิมพ์รหัสผ่าน
มีทางเลือกอื่นที่ไม่ต้องการ sudo ในคำสั่งซึ่งต้องการสร้างไบนารี setuided ขนาดเล็กที่เรียกใช้สคริปต์ของคุณ แต่ทุก setuid ไบนารีเพิ่มเติมจะเพิ่มปัญหาความปลอดภัยที่อาจเกิดขึ้นอีก