23

When I type a sudo command into the terminal it shows the following error:

sudo: /etc/sudoers is owned by uid 1000, should be 0
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

How do I fix this?

34

Change the owner back to root:

pkexec chown root:root /etc/sudoers /etc/sudoers.d -R

Or use the visudo command to ensure general correctness of the files (thanks to @KasiyA):

pkexec visudo
| improve this answer | |
  • 3
    Easier way to fix it is: pkexec visudo – αғsнιη Aug 19 '14 at 19:21
  • Im having a problem i have an ec2 instance and I tried your solution and it asks for password. How do I mitigate this? – david Jan 4 '16 at 8:40
  • Well, that sucks; "The program 'pkexec' is currently not installed. You can install it by typing: sudo apt-get install policykit-1" – Koen. May 16 '16 at 21:41
  • @Koen. It is installed by default on Ubuntu (unless you're talking a server or minimal installation, perhaps). – muru May 16 '16 at 21:52
  • Indeed a server installation, but I fixed it by booting in single user mode. – Koen. May 16 '16 at 22:22
0

first run the following command

$ su -root

it will ask for password and then run following commands one by one

chown root:root /etc/sudoers 
chmod 440 /etc/sudoers
chown -R root:root /etc/sudoers.d
chmod  755 /etc/sudoers.d 
chmod  440 /etc/sudoers.d/*
| improve this answer | |
  • 1
    On Ubuntu, root account is typically disabled, so this approach will not work. However, pkexec should work, if the only damage is to sudo's config. – vidarlo Feb 29 at 8:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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