Como redefinir permissões padrão para / etc?

5

Por engano, fiz alterações de permissão para /etc . Agora está me dando a seguinte mensagem de erro:

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  
    
por Satish Prasad 16.06.2013 / 19:20

3 respostas

5

O que eu faria:

$ 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

Talvez não seja suficiente, mas sem qualquer backup, é um bom começo.

    
por Gilles Quenot 17.06.2013 / 00:36
4

Como próximo passo após a recomendação do Sputnik, você poderia fazer isso: Em uma nova instalação de um servidor Ubuntu com a mesma versão que o seu, execute este:

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

Em seguida, importe o script setexec.sh (usando wget ou ftp) e execute-o no servidor quebrado. no ubuntu 13.04 esta etapa restaurou a maioria das funcionalidades.

    
por Vincent Lalieu 25.01.2014 / 17:50
0
gksudo chown -R root:root /etc/
gksudo chmod -R u+x /etc/
gksudo chmod -R a+r /etc/

deve funcionar. Isso dará permissões de leitura e execução a tudo em / etc /. O gksudo não depende do arquivo sudoers para funcionar como o sudo regular faz. Isso lhe dará um ponto de trabalho para recuperar tudo.

    
por Gremlin 25.01.2014 / 19:21