想要了解/usr/bin/sudo 这个权限

想要了解/usr/bin/sudo 这个权限

运行命令时出现以下错误sudo -s将 /usr/bin/sudo 的权限更改为 777 后

sudo:/usr/bin/sudo 必须由 uid 0 拥有,并且设置了 setuid 位

我通过以下过程解决了这个问题:

在(恢复模式)中选择您的操作系统版本,然后按 Enter 键。

例如:Ubuntu 14.04(恢复模式)

它会带你进入另一个屏幕。现在选择“Drop to root shell prompt”并按 Enter。

它将在屏幕底部加载一个命令行。

现在运行以下每个命令。

安装-o重新安装,rw /

安装 –all

chown root:root /usr/bin/sudo

chmod 4755 /usr/bin/sudo

重新开始

现在,我只是想了解为什么它不能在 /usr/bin/sudo 上使用 777 权限

请解释一下,提前谢谢。

答案1

sudo具有“setuid”位(4中的chmod 4755)。这意味着当您执行 时,您会自动获得所有者sudo的权限,即 root。因此,任何 的执行都具有 root 权限,只是“官方”版本所做的第一件事是要求输入密码以确定它是否可以继续。sudosudo

如果sudo是可写的,那么任何人都可以修补它以不检查密码或执行其他操作,从而获得 root 权限。因此sudo必须对每个人都保持 R/O 状态,否则应视为已泄露。

答案2

我很确定这是一个简单的安全功能,如果 /usr/bin/sudo 的权限不同于 755,它将无法访问。我找不到文章来证实这一点,所以我只能说这是我的猜测。然而,你会发现很多人问同样的问题,而且总是每个人都告诉他们恢复到 755 权限

相关内容