[英]setegid() in a suid-root binary in C
晚上好,我試圖用C寫一個suid-root二進制文件,我偶然發現了以下問題:我以非特權用戶user1的身份執行它,並且能夠使用setuid / seteuid更改為任何用戶id想。 問題是我無法使用有效的組ID來做到這一點。 部分代碼:
if ( setegid(VariableID) == -1 ) {
perror("setegid failed");
exit(1);
}
這將返回:
setegid failed: Operation not permitted
請注意,我可以在root(0)和執行二進制文件的用戶之間成功更改組ID,但不能更改為其他組。 因為二進制文件像UID / EUID一樣是suid-root,所以這不可能嗎?
答案(感謝Ingo Leonhardt)是您需要在用戶ID之前更改組ID。 現在有點有意義了.. :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.