fez um “sudo go-wrx” em /… oops, quebrado

1

OK, eu estava tentando configurar o ssh para funcionar corretamente, e um site disse que era muito exigente quanto a permissões e usar go-wrx on ~/.ssh , e que / e /home precisam ter pelo menos permissões de permissão. neles. Vi que / não tinha permissões de gravação, por isso corri go-wrx on / . Eu deveria ter lido sobre o que esse comando faz primeiro, porque agora a minha instalação está quebrada. o gui está quebrando lentamente as coisas que eu clico (basicamente sempre que ele tenta carregar qualquer coisa do sistema de arquivos). do terminal, um erro cd para qualquer lugar dá permissão negada e um sudobash: /usr/bin/sudo: Permission denied .

Se eu tiver que fazer uma reinstalação, irei, mas tenho alguns arquivos em /var/www que tenho para salvar.

Existe alguém lá fora que saiba como consertar isso ou pelo menos acessar os arquivos?

    
por AsherMaximum 12.08.2011 / 00:39

1 resposta

5

Lição aprendida: não execute comandos como root se você não souber o que eles fazem. Se você executasse esse comando como seu próprio usuário, não teria conseguido lavar todo o sistema. By the way, esse site está errado; somente ~ , ~/.ssh e ~/.ssh/authorized_keys precisam não ser graváveis em grupo (consulte a seção de solução de problemas em nossa tag ssh wiki ).

Você pode limpar a partição, reinstalar e restaurar os arquivos importantes dos backups. (Se você não tem backups, você está procurando por problemas. A primeira coisa a fazer depois que o sistema estiver de volta e funcionando é para organizar algum sistema de backup automático. Não se esqueça de testá-lo.)

O comando que você executou não é muito destrutivo, você pode se recuperar dele. O principal obstáculo é que você desabilitou métodos normais de acesso root. No entanto, você está fadado a perder algumas permissões e acabar com um sistema ligeiramente quebrado. Por isso, recomendo que você reinstale, depois de salvar todos os dados importantes.

Se você tiver uma senha root e acesso ao console, mude para um console de texto (pressione Ctrl + Alt + F1 ) e registre como root. Se você não tiver uma senha de root, mas tiver acesso ao console, reinicialize a máquina e, quando o menu de inicialização aparecer, selecione uma entrada de “rescue” se tiver uma, ou se você não editar a entrada de inicialização normal e adicione init=/bin/sh no final da linha que começa com kernel . Veja também Como faço para logar no meu laptop Linux se eu esquecer o login e a senha? . Outra possibilidade, se você tiver acesso ao console, é inicializar a partir de um live CD do Linux, como o CD de Recuperação do Sistema . Se você não tem acesso ao console, explique sua configuração com muita precisão se precisar de ajuda para obter um shell de root (talvez pergunte sobre isso como uma questão separada).

Agora que você tem um shell de root, restaure as permissões mais importantes. Preste atenção aos detalhes, tente copiar e colar, se possível. Em particular, os chmods recursivos precisam de um capital X em a+rX e /dev/*/ não deve ser /dev/* . As partes em /dev não são necessárias se você reinicializar. Se você seguir estas etapas, haverá uma pequena janela de tempo em que qualquer usuário do sistema poderá obter raiz; isso não é um problema se você não tiver outros usuários além de você mesmo.

chmod a+rX / /* /var/* /dev /dev/*/
chmod a+rw /dev/full /dev/log /dev/null /dev/ptmx /dev/random /dev/tty /dev/urandom /dev/zero
chmod a+rw /var/lock /var/tmp
chmod -R a+rX /etc /bin /lib* /sbin /usr
chmod go-rx /etc/shadow /etc/gshadow /etc/sudoers
chmod go-rx /etc/*key /etc/ssh/*key
chmod g=x,o= /etc/ssl/private
chmod g=r,o= /etc/ssl/private/*

Após essas etapas, seu sistema deve ser mais utilizável, mas isso não é uma lista completa. Então, agora, salve todos os seus dados importantes e reinstale. Se estiver se sentindo aventureiro, compare as permissões em seu sistema com as de um sistema limpo e repare os arquivos restantes. Mas eu não recomendo usar a máquina em produção depois.

    
por 12.08.2011 / 01:17