在将权限更改为 /usr/bin/sudo 的 777 后运行命令sudo -s时出现以下错误
sudo:/usr/bin/sudo 必须由 uid 0 拥有并设置 setuid 位
我通过以下过程解决了这个问题:
在(恢复模式)中选择您的操作系统版本,然后按 Enter 键。
例如:Ubuntu 14.04(恢复模式)
它会给你带来另一个屏幕。现在选择“Drop to root shell prompt”,然后按 Enter。
它将在屏幕底部加载命令行。
现在运行以下每个命令。
mount -o 重新挂载,rw /
挂载-全部
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
重新开始
现在,我只想了解为什么它不能在 /usr/bin/sudo 上使用 777 权限
请解释一下,提前谢谢。
我很确定这是一个简单的安全功能,如果 /usr/bin/sudo 对 755 具有不同的权限,它将变得无法访问。我找不到一篇文章来证实这一点,所以我会说这是我的猜测。但是,您会发现很多人都在问同样的问题,并且总是每个人都告诉他们恢复到 755 权限
sudo
有“setuid”位(4
inchmod 4755
)。这意味着当你执行时sudo
,你会自动获得 的sudo
所有者的权限,也就是root。所以任何执行sudo
都有root权限,只是“官方”版本做的第一件事就是要求输入密码来确定它可以继续。如果
sudo
是可写的,那么任何人都可以对其进行修补,使其不检查密码或做其他事情,从而获得root权限。所以sudo
必须为每个人保留 R/O,否则它应该被认为是妥协的。