从
man sudo
sudo 执行命令时,安全策略指定命令的执行环境。通常,真实有效的用户和组以及 ID 设置为与目标用户的 ID 相匹配,如密码数据库中指定的那样,并且组向量基于组数据库进行初始化(除非指定了 -P 选项)。
为什么
sudo
将有效和真实用户/组 ID都更改为目标用户的 ID,而不仅仅是有效用户/组 ID?有效的用户/组 ID 不是获得目标用户权限所需的唯一 ID 吗?
来自https://unix.stackexchange.com/a/333245/674
更改进程的有效用户和组 ID 只是更改进程权限的一种方式,在 sudo.conf 中定义的安全策略可以使用上述列表中的任何其他类型的参数。
为了更改权限,除了更改有效用户/组 ID 之外,还有其他方法吗?这些是什么?
谢谢。
我的问题的灵感来自`sudo` 在更改进程的有效用户和组 ID 方面是否有效?
sudo
更改真实和有效的用户 id 以限制生成的进程的权限。更改有效 id足以授予新进程所请求用户的权限,但这样做只会留下一个巨大的漏洞:setuid
然后可以用来承担调用用户的权限。为避免这种情况,sudo
也要设置真实的用户 ID。联机帮助页中给出了
sudo
可能性列表,并在您所指的答案中引用。其中一些对子进程的权限有影响:SELinux 角色和类型、Solaris 项目和权限以及 BSD 登录类。