为什么 sudo 能够在 fakeroot 中运行?

为什么 sudo 能够在 fakeroot 中运行?

请看以下代码片段:

fakeroot -- sudo cat /etc/shadow

这将打印出的内容/etc/shadow,但是在 fakeroot 中运行 sudo 不会破坏它的整个目的吗,还是我遗漏了什么?

答案1

假Root 提供一个虚假的 root 环境,通常是为了消除构建包时需要成为 root 的需要。

Fakeroot 在看似具有文件操作 root 权限的环境中运行命令。

因此,该sudo操作将变为空操作,因为它认为调用者已经拥有 root 权限。因此,它不需要密码。

Sudoers 手册 这条规则有例外:

如果 sudo 由 root 运行,并且设置了 SUDO_USER 环境变量,则 sudoers 策略将使用此值来确定实际用户是谁。即使已调用 root shell,用户也可以使用此值通过 sudo 记录命令。

如果sudo使用参数调用,它们将产生其通常的效果。

相关内容