gpt4 book ai didi

linux - Root 守护进程-> 模拟为较小的用户-> 派生一个 child 。子进程是用户还是有一些root权限?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:38:59 26 4
gpt4 key购买 nike

如果我让一个 root 特权进程模拟一些较小的用户,并 fork 一个 child ,假设 child 拥有用户特权并且与 root 无关是否安全?我正在使用默认的自定义方法来冒充用户并恢复为所有者的信用(root)。它们是抽象的。但通常,这些方法会将进程的整个上下文更改为用户的上下文(可能包括 uid、gid 等)。

最佳答案

fork 不会更改进程 ID,但 exec 可以。 execing 将使用当前有效的 uid 重写保存集 uid。有效的 uid 将保持不变,除非可执行文件是 setuid 可执行文件,在这种情况下,它将从可执行文件的所有者那里复制。

我认为最好使用类似的东西:

int print_ids(void)
{
long ruid, euid, suid;
getresuid(&ruid, &euid, &suid);
return printf("%ld %ld %ld\n", ruid, euid, suid);
}

并在不同场景的不同上下文中打印 uid,以验证它们在哪些上下文中发生了变化,在哪些情况下没有发生变化。

关于linux - Root 守护进程-> 模拟为较小的用户-> 派生一个 child 。子进程是用户还是有一些root权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45111975/

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