How can I solve this error : sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

Posted October 19, 2017 66.1k views
Nginx DigitalOcean Linux Commands Ubuntu 16.04


I did a stupid thing, on my Ubuntu 16.04 Droplet, I gave a chmod -R 777 * command on /usr folder.
I wanted to restart my Nginx server, but it gave me an error (of course) :

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

And I can not access sudo su - root.

How can I reverse all that?

Thanks you for your answers.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

3 answers

You can chmod u+s /usr/bin/sudo
Though you’ll need to actually log as root, if you can’t sudo right now.

I don’t know of any way of automatically restoring all the permissions on the rest of the files.

Thank you lampreyOne,

I do not know if your solution works, but I found an article here:

and it worked for me. Thank you.

First restart your pc, and press the SHIFT key while Ubuntu is booting.

This will bring you up the boot menu.

Select Advanced Options.

Select your OS version in (recovery mode), and press Enter Key.

Ex : Ubuntu 14.04 (recovery mode)

It will bring you up another screen. Now select “Drop to root shell prompt” and press Enter.

It will load a command line at the bottom of the screen.

Now run each of the following commands.

mount -o remount,rw /

mount –all

chown root:root /usr/bin/sudo

chmod 4755 /usr/bin/sudo


Now your pc will restart. Once you log in, you will find that you can use the sudo command again .

Submit an Answer