sudo是如何实现改变进程权限的?

sudo是如何实现改变进程权限的?
  1. man sudo

    当sudo执行命令时,安全策略指定该命令的执行环境。通常,真实有效的用户、组和ID设置为与目标用户相匹配,如密码数据库中指定,并且组向量根据组数据库初始化(除非指定了 -P 选项)。

    为什么会sudo改变两个都有效且真实的用户/组 ID 到目标用户的 ID,而不是只是有效的用户/组 ID?

    有效的用户/组 ID 不是获取目标用户权限所需的唯一 ID 吗?

  2. https://unix.stackexchange.com/a/333245/674

    更改进程的有效用户和组 ID 只是更改进程权限的一种方法,sudo.conf 中定义的安全策略可以使用上面列表中的任何其他类型的参数。

    为了更改权限,除了更改有效用户/组 ID 之外还有其他方法吗?这些是什么?

谢谢。

我的问题的灵感来自`sudo` 是否可以更改进程的有效用户和组 ID?

答案1

  1. sudo更改真实和有效的用户 ID,以便限制由此产生的进程的特权。更改有效id是充足的授予新进程所请求用户的权限,但仅这样做会留下一个漏洞:setuid然后可以用来承担调用用户的权限。为了避免这种情况,sudo还需要设置真实的用户 ID。

  2. 可能性列表在联机sudo帮助页并在您提到的答案中引用。其中一些对子进程的权限有影响:SELinux 角色和类型、Solaris 项目和权限以及 BSD 登录类。

相关内容