gpt4 book ai didi

c - 为什么很多服务器改变它的uid和gid,有什么好处?

转载 作者:太空狗 更新时间:2023-10-29 17:23:13 25 4
gpt4 key购买 nike

我在很多开源项目中看到这样的逻辑:

if (setuid() == 0) {
if (setgid(ccf->group) == -1) {
...
if (initgroups(ccf->username, ccf->group) == -1) {

我有两个问题:

  1. 更改为另一个 gid 和 uid 有什么好处?
  2. initgroups 有什么用? IMO,要更改 gid 和 uid,setuid()setgid() 就足够了。

最佳答案

大多数时候,系统守护进程由初始化脚本生成,因此以 root 运行。调用 setuid()setgid() 允许他们放弃 super 用户权限并模拟系统上的另一个用户(通常远不如 root 强大) ).这样,错误和安全漏洞对系统的致命性就会降低。

关于你问题的第二部分,initgroups()调用以重新初始化组访问列表,并将 ccf->group 添加到 ccf->username 所属的组列表中。这可能是因为调用 setgid() 不足以将与新组关联的访问权限传播到进程。

关于c - 为什么很多服务器改变它的uid和gid,有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6223478/

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