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á ./fixpermission
se 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.