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

Cro*_*ile 3 root sudo chown

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

$ 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
Run Code Online (Sandbox Code Playgroud)

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

$ id -u root
0
Run Code Online (Sandbox Code Playgroud)

而 setuid 似乎很好:

$ ls -l /usr/bin/sudo
-rwxr-xr-x 1 4755 root 155008 Feb 10  2014 /usr/bin/sudo
Run Code Online (Sandbox Code Playgroud)

mur*_*uru 16

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

$ ls -l /usr/bin/sudo 
-rwsr-xr-x 1 root root 155008 Feb 11  2014 /usr/bin/sudo
Run Code Online (Sandbox Code Playgroud)

尝试使用pkexec正确设置它:

pkexec chmod a=rx,u+ws /usr/bin/sudo
Run Code Online (Sandbox Code Playgroud)

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