2010-09-23 57 views

回答

0

默認情況下,只有root可以使用setuid/setgid。也許與selinux或類似的東西。

0

對於sh(1)(Bourne shell)沒有setuid或setgid命令可用。實際上,setuid(2)和setgid()是僅在編程語言(如C或Perl)中可用的系統調用(以及幾乎除shell腳本外的任何代碼)。即使可用,當調用非root用戶時,調用的實用程序也會受到限制。這些調用沒有給予真實用戶不可用的特權。

還有文件模式setuid(setuid bit設置)或setgid(意思setgid位設置);但這些僅適用於二進制可執行文件,而不適用於sh腳本*。

對於普通用戶來說,不用重新輸入密碼即可從腳本中以不同的用戶身份運行命令,請使用sudo(8)命令。 Sudo需要由系統管理員進行配置。

還有其他方式充當不同的用戶;但都涉及調用超級用戶祝福(設置了setuid bit)的外部可執行文件,或者讓其他用戶的進程執行任務。

另請參見
sudo(8) sudo命令
setuid(2)的setuid的系統調用

setuid bit訪問模式
* Setuid on Shell Scripts
How can I get setuid shell scripts to work?

相關命令
sh(1)sg(1)su(1)

相關問題