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

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

我正在尝试运行以下命令:

$ echo "My username is: `whoami`"
My username is: d
$ sudo chown -R `whoami` /usr/local/lib/node_modules
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

我不明白问题是什么,因为 root 是 uid 0:

$ id -u root
0

并且 setuid 看起来很好:

$ ls -l /usr/bin/sudo
-rwxr-xr-x 1 4755 root 155008 Feb 10  2014 /usr/bin/sudo

答案1

Setuid 位是不是设置。如果是,权限将有一个s,而不是第一个x

$ ls -l /usr/bin/sudo 
-rwsr-xr-x 1 root root 155008 Feb 11  2014 /usr/bin/sudo

尝试使用pkexec来正确设置它:

pkexec chmod a=rx,u+ws /usr/bin/sudo

尽管我怀疑这是否是您将遇到的唯一问题。

答案2

以 root (su) 登录并运行以下命令

chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo

答案3

无法运行 sudo 类型

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

显示错误usr/bin/sudo 必须由 uid 0 拥有,并且设置了 setuid 位

$ ls -l /usr/bin/sudo 
-rwxr-xr-x 1 root root 136808 Jul  4 07:37 /usr/bin/sudo

这是由于权限问题

 $ su
 Password: <type your root password>

切换到root用户并运行命令

# pkexec chmod a=rx,u+ws /usr/bin/sudo

然后通过用户输入进行检查

$sudo -l

这对我来说可以

干杯....

答案4

1-在提升的CMD上将默认用户更改为root:

ubuntu1804.exe config --default-user root

2 - 打开 bash(在我的情况下是 zsh)并更改所有权:

chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo

3 - 在提升的 CMD 上将默认用户更改回我的用户名

ubuntu1804.exe config --default-user [my_username]

相关内容