Từ wikipedia:
setuid và setgid (viết tắt của "set ID người dùng khi thực thi" và "đặt ID nhóm khi thực thi", tương ứng) [1] là các cờ quyền truy cập Unix cho phép người dùng chạy một tệp thực thi với quyền của chủ sở hữu hoặc nhóm của người thực thi. Chúng thường được sử dụng để cho phép người dùng trên hệ thống máy tính chạy các chương trình với các đặc quyền nâng cao tạm thời để thực hiện một tác vụ cụ thể. Mặc dù các đặc quyền id người dùng hoặc id nhóm được cung cấp không phải lúc nào cũng được nâng lên, tối thiểu chúng là cụ thể.
Hãy thử một cái gì đó như thế này
stefan@linux-ulsk:/usr/bin> zypper up
Root privileges are required for updating packages.
linux-ulsk:~ # whereis zypper
zypper: /usr/bin/zypper /usr/bin/X11/zypper /usr/include/zypper /usr/share/zypper /usr/share/man/man8/zypper.8.gz
linux-ulsk:~ # chmod u+s /usr/bin/zypper
linux-ulsk:~ # exit
stefan@linux-ulsk:/usr/bin> zypper up
Retrieving repository ...
Tôi có thể bắt đầu zypper mà không phải là root, điều mà trước đây tôi không thể làm được.
Hãy cẩn thận với setuid và setgid! Một số trích dẫn cuốn sách:
Không bao giờ cho phép kịch bản shell setuid. Một số kỹ thuật để lật đổ chúng được biết đến.
/etc/sudoers
và thêmusername ALL=/sbin/iptables /sbin/whatever
?