Changed perms em / etc / skel arquivos ocultos, bloqueados de bash / sudo

4

Antecedentes: cometi um erro de novato em um Ubuntu 14.04 VM & amp; alterou recursivamente as permissões na pasta /etc . Eu os restaurei para padronizar 1 diretório de cada vez, usando uma VM nova como modelo e procurando as permissões apropriadas no apt-browse.org quando os arquivos não existem na VM 'modelo'. Quando cheguei ao diretório /etc/skel , as permissões eram 660 em .bash_logout , .bashrc e .profile , mas de acordo com o modelo & amp; apt-browse.org, eles devem ser 644. Depois de navegar para /etc/skel , eu corri sudo chmod 644 .* e depois executei ls -la .

A partir desse ponto em diante, não pude mais invocar o sudo, nem executar comandos de shell, incluindo navegação, listagem de arquivos, etc. Consulte

x@Y:/etc/sgml$ cd /etc/skel/ && ls -la
total 28
drwxr-xr-x   2 root root  4096 Oct 10  2014 .
drwxr-xr-x 129 root root 12288 Sep 12 15:39 ..
-rw-rw----   1 root root   220 Mar 18  2013 .bash_logout
-rw-rw----   1 root root  3637 Apr 23  2014 .bashrc
-rw-rw----   1 root root   675 Mar 28  2013 .profile
x@Y:/etc/skel$ sudo chmod 644 *
chmod: cannot access '*': No such file or directory
x@Y:/etc/skel$ sudo chmod 644 .*
x@Y:/etc/skel$ ls -la
ls: cannot open directory .: Permission denied
x@Y:/etc/skel$ sudo ls -la
sudo: unable to stat /etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
x@Y:/etc/skel$ sudo su
sudo: unable to stat /etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

Captura de tela original

Além disso, os sites no servidor agora apresentam um erro 403: You don't have permission to access / on this server. Server unable to read htaccess file, denying access to be safe

Eu não tenho acesso físico ao servidor, então a inicialização do modo de recuperação é problemática. Além disso, por que essa permissão trocou as coisas? Segundo a documentação, era a coisa certa a fazer.

    
por Chris 13.09.2016 / 20:03

1 resposta

2

Você executou

cd /etc/skel
sudo chmod 644 .*

.* encontrará todos os .files (incluindo diretórios) no diretório de trabalho atual e no próprio diretório de trabalho atual e no diretório pai. Você aplicou o modo 644 a estes:

.            <-- problem here as it's the working directory
..           <-- big problem here as it's the /etc directory
.bash_logout  
.bashrc  
.config      <-- problem here as it's a directory
.profile

O motivo pelo qual nada funcionou foi que você removeu a permissão de execução no diretório de trabalho atual. Isso significa que você não tem permissão para estar lá!

Os diretórios devem ter permissão de execução para serem inseridos ou pesquisados. É um caso extremo estar dentro de um diretório quando a permissão de execução é removida dele, mas nessa situação você obterá permission denied para quase todos os comandos.

Você pode cd sair do diretório, mas não poderá consertar as permissões sem acesso físico porque o arquivo sudoers (em /etc ) não pode ser lido.

Você pode

  • inicialize no modo de recuperação, inicie um shell raiz e monte o sistema de arquivos read write, fazendo mount -o remount,rw /

  • inicialize em uma sessão ao vivo e monte a partição raiz: sudo mount /dev/sdxY /mnt (substitua /dev/sdxY pelo nome correto da partição raiz) e, em seguida, cd /mnt

Você não fez chmod -R (felizmente!), então você só precisa consertar três coisas. Na recuperação do (o mesmo, mas com o sudo e sem o primeiro / nos caminhos de /mnt em uma sessão ao vivo)

chmod 755 /etc
chmod 755 /etc/skel
chmod 755 /etc/skel/.config

para restaurar as permissões corretas.

    
por Zanna 14.09.2016 / 09:34