gpt4 book ai didi

c - C 中 suid-root 二进制文件中的 setegid()

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:28 24 4
gpt4 key购买 nike

晚上好我正在尝试用 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。现在有点道理了.. :)

关于c - C 中 suid-root 二进制文件中的 setegid(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26061660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com