簡體   English   中英

任何用戶都可以使用setuid()/ setgid更改uid / gid嗎?

[英]can any user change uid/gid using setuid()/setgid?

還是只有root可以? 我想通過調用setuid / setgid從.sh腳本更改非根目錄的uid / gid。 可能嗎?

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

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

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

對於普通用戶而言,即使不通過腳本也可以以其他用戶身份運行命令而無需重新輸入密碼,請使用sudo(8)命令。 Sudo需要系統管理員進行配置。

還有其他方式可以充當不同的用戶。 但是所有這些都涉及調用已由超級用戶(有設置setuid位 )祝福的外部可執行文件,或由其他用戶的進程執行任務。

也可以看看
sudo(8) sudo命令
setuid(2) setuid系統調用

setuid位訪問模式
* Shell腳本上的Setuid
如何使setuid shell腳本起作用?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM