簡體   English   中英

setegid()在C的suid-root二進制文件中

[英]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.

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