请看以下代码片段:
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
使用参数调用,它们将产生其通常的效果。