我正在尝试运行以下命令:
$ 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]