gpt4 book ai didi

c++ - 使用 C 在 linux 中设置用户的补充组 ID

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:34:21 25 4
gpt4 key购买 nike

C 中有 setgroups(size_t size, const gid_t *list) 方法,它允许我设置调用进程的补充组 ID。

问题一:

但是为了运行这个我们需要有适当的权限所以我运行这个程序而不得到不允许操作错误的唯一方法是使用root运行它。但这是否意味着使用这种方法我们只能设置 root 的组??

问题二:

另一方面,我打算做的是给定一个特定的用户和一个 gid 列表,我想将给定的 gid 设置为给定用户的补充组。 C/C++ 中是否为此定义了方法?

提前致谢

最佳答案

从技术上讲,在 Linux 下您需要 CAP_SETGID 功能,它不需要是 root(但通常是)。

请注意,这适用于有效的 gid,而不是实际的 gid。另请注意,调用进程的实际/有效 gid 不一定与实际/有效 uid 相同。您应该查看有关 setuidseteuidsetgidsetegid 的联机帮助页以获取更多详细信息,但其中一个场景是 SUID 程序 setegid 回到非特权组,然后使用 setgroups

关于c++ - 使用 C 在 linux 中设置用户的补充组 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22132326/

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