3

I am trying to run the following command:

$ 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

I don't understand what the problem is because root is uid 0:

$ id -u root
0

And the setuid seem fine:

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

The Setuid bit is not set. If it were, the permissions would have an s instead of the first x:

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

Try using pkexec to set it correctly:

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

Though I doubt that's the only problem you are going to have.

2
  • Cool, I didn't know that one - could have saved me grief the other day! – Mark Williams Feb 11 '15 at 14:43
  • 1
    Oh! Look! I can upvote twice! – Fabby Feb 11 '15 at 14:49
2

Login with root (su) and run the following command

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

I had the same problem with my WSL on Windows:

Exit bash. Run via elevated CMD Terminal:

lxrun /setdefaultuser root

Start bash. Run the command from Thirumal

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

Exit Bash. Run via elevated CMD Terminal:

lxrun /setdefaultuser <Your Original User>

Start Bash

0

Cant run sudo type

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

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

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

Its beacuase of Permission issue

 $ su
 Password: <type your root password>

Switch to root user and run the command

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

Then check it by typing from the user

$sudo -l

it Works fine for me

Cheers....

Not the answer you're looking for? Browse other questions tagged or ask your own question.