无法使用 sudo

无法使用 sudo

我将所有权从 root 更改/usr/local/bin/usr/bin

但是,现在我无法使用 sudo。尝试使用 sudo 时收到的消息是:

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

我已经在网上查找过并尝试过解决方案,chown但没有任何效果。

当我输入此命令时:

ls -l /usr/bin/sudo

我得到输出:

-rwsr-xr-x 1 swirlydino root 136808 May 29 06:32 /usr/bin/sudo

当我输入此命令时:

ls -ld /usr /usr/bin

我得到这个输出:

drwxr-xr-x 10 root  root  4096 Jun 14 10:15 /usr
drwxr-xr-x  2 datax root 36864 Aug 18 14:26 /usr/bin

那么,我怎样才能将所有权从 swirlydino 改回为 root?

答案1

Sudo 必须由 root 拥有,并且设置了 set uid 位。权限掩码的 set uid 位实际上使二进制文件以拥有它的用户身份运行,无论谁调用它。因此 sudo 可以更改它生成的任何进程的 uid。

通过更改 /usr/bin 的所有权,您几乎已经控制了您的安装。许多二进制文件都依赖于 suid,而让这些文件归用户所有,会让您遭受许多有趣的攻击。

https://en.wikipedia.org/wiki/Setuid对 suid 的工作原理进行了详细的解释。

此时最好的建议是重新安装 ubuntu...:)

相关内容