5

By mistake I have made permission changes for /etc. Now it's giving me the following error message:

bash: /etc/bash.bashrc: Permission denied  
I have no name!@chandan-Inspiron-5520:~$ sudo /etc/init.d/apache2 restart  
sudo: unable to stat /etc/sudoers: Permission denied  
sudo: no valid sudoers sources found, quitting  
sudo: unable to initialize policy plugin  
5

What I would do :

$ sudo su
chown -R root:root /etc
find /etc -type f -exec chmod 644 {} +
find /etc -type d -exec chmod 755 {} +
chmod 755 /etc/init.d/* /etc/rc.local /etc/network/* /etc/cron.*/*
chmod 400 /etc/ssh/ssh*key

Maybe it's not sufficient, but without any backup, that's a good start.

4

As a next step after sputnik recommendation, you could do this: On a fresh install of a ubuntu server with the same version as your broken one, run this:

find /etc -type f -executable | awk '{printf("chmod a+x %s\n",$0);}' > setexec.sh

Then import the script setexec.sh (using wget or ftp) and execute it on the broken server. on ubuntu 13.04 this step restored most of the functionalities.

  • here is a list from my desktop: askubuntu.com/questions/508359/… – Rinzwind Aug 8 '14 at 0:50
  • 1
    Thank you for this idea. I used a variant of it to copy all permissions, not just the execute bit: find /etc/ -exec stat -c "chmod %a %n" '{}' \; > setperms.sh – Dave James Miller Oct 28 '16 at 13:51
0
gksudo chown -R root:root /etc/
gksudo chmod -R u+x /etc/
gksudo chmod -R a+r /etc/

should work. This is will give read and execute permissions to everything in /etc/. gksudo doesn't depend on the sudoers file to work like regular sudo does. This will give you a working point to get everything else back.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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