Corrigir permissões do servidor após chmod acidental

Corrigir permissões do servidor após chmod acidental

Ao tentar depurar um servidor de email, digitei:

chmod -R 777 /

em vez de:

chmod -R 777 .

e a cereja do bolo, por ter esquecido que havia mudado um script que uso para entrar para consertar alguma coisa, fiz tudo isso como root. Não tenho backups da maior parte do sistema (má escolha, eu conheço).

Ao contrário das perguntas "Recuperando-se de chmod -R -777 /" e "O que fazer após 'chmod -R 777 /'?" ainda estou conectado como root e nem todo o sistema foi alterado, então tenho algum controle sobre o sistema. Eu também ^C d saí do comando em um segundo para minimizar os danos. Desde então desconectei fisicamente o servidor da internet.

Acredito que um script poderia consertar isso se restaurasse as permissões do sistema de arquivos com base nos dados do gerenciador de pacotes, mas não sei como faria isso. Se isso não for possível, como salvaria os dados do servidor para reinstalar o sistema operacional?

Estou ciente dos riscos potenciais de perder um arquivo, mas preferiria a recuperação à reinstalação, apesar deles.

esta é a saída atual de ls -la /:

drwxrwxrwx  22 root root  4096 Sep  7  2016 .
drwxrwxrwx  22 root root  4096 Sep  7  2016 ..
drwxr-xr-x   2 root root  4096 May 18 07:55 bin
drwxr-xr-x   3 root root  4096 Sep 21 07:53 boot
drwxr-xr-x  19 root root  3180 Sep 11 20:54 dev
drwxrwxrwx  92 root root  4096 Aug 23 07:50 etc
drwxr-xr-x   4 root root  4096 May 23  2016 home
lrwxrwxrwx   1 root root    31 Feb 24  2016 initrd.img -> /boot/initrd.img-3.16.0-4-amd64
drwxrwxrwx  18 root root  4096 Feb 24  2016 lib
drwxr-xr-x   2 root root  4096 Jun 20 07:00 lib64
drwx------   2 root root 16384 May 19  2016 lost+found
drwxrwxrwx   2 root root  4096 May  5  2015 media
drwxr-xr-x   2 root root  4096 May  5  2015 mnt
drwxr-xr-x   3 root root  4096 May 28  2016 opt
dr-xr-xr-x 148 root root     0 Sep  3 21:55 proc
drwxrwxrwx  10 root root  4096 Aug 19 17:58 root
drwxr-xr-x  22 root root   800 Sep 21 17:09 run
drwxrwxrwx   3 root root  4096 Jun 20 07:00 sbin
drwxr-xr-x   4 root root  4096 Sep 20 23:18 sftp
dr-xr-xr-x  13 root root     0 Sep  3 21:55 sys
drwxrwxrwx   8 root root  4096 Sep 21 17:17 tmp
drwxrwxrwx  11 root root  4096 Feb 24  2016 usr
drwxr-xr-x  14 root root  4096 Jun 25 06:21 var
lrwxrwxrwx   1 root root    27 Feb 24  2016 vmlinuz -> boot/vmlinuz-3.16.0-4-amd64

acabei de notar em meu pânico que cliquei no fórum do ubuntu, não no debian ... estou ciente de que não é assim que você conserta um servidor de e-mail. foi uma solução hackeada e desleixada para ver o que quebrou

iv repostei isso no fórum correto agora

Responder1

Corrigindo erro de permissão

Como restaurar a permissão do diretório raiz para o padrão?

Regra nº 1: Se você não se sente confortável com linhas de comando, não execute nenhum comando como root.

Executando chmod -R 777 /como rootquebrará seu sistema.

Executando rm -rf /como rootresultará em um desastre!.

Se você executou chmod -R 777 /como root, siga estas etapas para restaurá-lo:

Passo 1:

Copie o script a seguir e cole-o em seu console para gerar o script fixpermission

echo '
chmod -R 755 /bin /boot /dev /etc/ /home /lib /lib64 \
/media /mnt /opt /run /sbin /srv /usr /var

chmod -R 777 /initrd.img /vmlinuz
chmod -R 1777 /tmp
chmod -R 555 /sys
chmod -R 555 /proc
chmod -R 700 /root

' > fixpermission

chmod +x fixpermission

./fixpermission

O procedimento acima criará um script chamado fixpermission e o executará ./fixpermissionse ainda não tiver sido invocado.

Passo 2:

Execute stat -c '%A %a %n' /*para mostrar seu diretório adequado e sua permissão restaurada.

Exemplo: sua estrutura de permissão de diretório deve ser semelhante a esta:

root@plab:~# stat -c '%A %a %n' /*
drwxr-xr-x 755 /bin
drwxr-xr-x 755 /boot
drwxr-xr-x 755 /dev
drwxr-xr-x 755 /etc
drwxr-xr-x 755 /home
lrwxrwxrwx 777 /initrd.img
lrwxrwxrwx 777 /initrd.img.old
drwxr-xr-x 755 /lib
drwxr-xr-x 755 /lib64
drwx------ 700 /lost+found
drwxr-xr-x 755 /media
drwxr-xr-x 755 /mnt
drwxr-xr-x 755 /opt
dr-xr-xr-x 555 /proc
drwx------ 700 /root
drwxr-xr-x 755 /run
drwxr-xr-x 755 /sbin
drwxr-xr-x 755 /srv
dr-xr-xr-x 555 /sys
drwxrwxrwt 1777 /tmp
drwxr-xr-x 755 /usr
drwxr-xr-x 755 /var
lrwxrwxrwx 777 /vmlinuz
lrwxrwxrwx 777 /vmlinuz.old

Etapa 3:

Reinicie seu sistema!

Espero que isto ajude.

informação relacionada