"Chown -R root /" como estou ferrado?


8

Eu acidentalmente executei o comando chown -R root / enquanto tentava alterar as permissões para a pasta pública do meu aplicativo rails. Eu acreditava que isso alterava as permissões para todas as minhas pastas no diretório /. Então, minha pergunta é: quão perigoso é isso, de fato, a melhor pergunta seria: existe alguma maneira de desfazer isso?


3
Isso não pode ser desfeito automaticamente e, sim, tem um impacto significativo no seu sistema (incluindo, entre outros, os vários diretórios pessoais). Espero que você tenha um backup recente à mão. Boa sorte.
Frédéric Hamidi

Existem programas que verificam seu sistema em busca de permissões e propriedade de arquivos apropriadas. Eu acho que o tripwire é ou foi um dos primeiros. Se você não tiver vários usuários, poderá recuperar a situação apenas obtendo um relatório e / ou corrigindo essa ferramenta.
Minopret

Leia também os bons conselhos abaixo, que equivalem a "não reaja de maneira alguma que pioraria" e "não assuma o pior". Ou lembre-se destas etapas gerais importantes para solução de problemas usando a versão da piada: Operador de emergência: "Não entre em pânico, você tem certeza de que seu amigo está morto?" Chamador: BANG "Sim, infelizmente, ele está morto."
Minopret

Na maioria dos casos, em um sistema normal, você deve saber do grupo de um arquivo quem deve ser o proprietário. Portanto, findtodos os arquivos pertencentes à raiz onde o grupo não é apropriado e os exibem ao usuário que corresponde ao grupo. Registre falhas e lide com elas individualmente.
AGF

Você executou esse comando como root? (Espero que não ...) #
Axel

Respostas:


7

Uma maneira de atenuar o problema aqui (não resolver, mas ajudá-lo a sair de um buraco) é executar um processo em um sistema semelhante para coletar as propriedades apropriadas para os arquivos. Aprecio que as chances de uma correspondência exata sejam um pouco reduzidas, mas se os dois sistemas estiverem no mesmo nível dos pacotes similares instalados, você poderá ter sorte.

Depois de coletar as permissões de arquivo em um arquivo, você poderá executar um processo em seu próprio sistema para ler os arquivos e permissões / propriedades do bom e substituí-los no seu. Eu tenho alguns aplicativos caseiros pequenos no Linux que fazem exatamente isso.

Por exemplo

777*0*0*S*16*1334559119*1334532895*1361208513*/usr/lib32/*libgomp.so.1
644*0*0*F*67370*1359536382*1359374461*1359717843*/usr/lib32/*librt.a
644*0*0*F*59044*1334559119*1334532931*1355405098*/usr/lib32/*libgomp.so.1.0.0
644*0*0*F*1238*1359536382*1359374461*1359717843*/usr/lib32/*libBrokenLocale.a
777*0*0*S*17*1359536382*1359374460*1361208513*/usr/lib32/*libdl.so
644*0*0*F*905712*1334559116*1334533011*1355405098*/usr/lib32/*libstdc++.so.6.0.16
777*0*0*S*15*1333306601*1323929512*1361208513*/usr/lib32/*libbz2.so.1.0
777*0*0*S*24*1359536382*1359374460*1361208513*/usr/lib32/*libnss_files.so
644*0*0*F*1128*1359536382*1359374462*1359717843*/usr/lib32/*crt1.o

RWX * UID * GID * outras coisas * diretório * nome do arquivo


5

Primeiro de tudo, pare o comando se ele ainda estiver em execução!

Agora tudo pertencerá à raiz e isso é bastante problemático.

Você deve tentar restaurar as informações do seu backup mais recente.

Também é importante não reiniciar o sistema antes de verificar todos os aplicativos em execução e o usuário iniciá-los na inicialização. Se o fizer, alguns deles podem não iniciar corretamente devido a problemas de permissão.

Boa sorte.


3

Muito e não exatamente.

"Muito" no sentido de que, se o comando foi realmente executado, sua segurança está ferrada. Agora você não sabe quais caminhos têm quais proprietários e quem deve ter permissão para fazer o que.

"Não exatamente" no sentido - você tem certeza de que estava enraizado quando fez isso e o comando foi até o fim? Se você o cancelou, assim que o viu, pode ter sorte e o reparo pode estar baixo. Se você não fosse root, este comando não deveria ser capaz de fazê-lo, a menos que você fizesse algo assim sudo ....

Não existe um remédio único para isso. Se você tiver um backup, poderá restaurá-lo. Pode ser necessário verificar as propriedades no backup e aplicá-las. Se você estiver usando um verificador rootkit (por exemplo, rkhunter), ele pode ter uma lista das propriedades mais básicas e possivelmente consertá-lo. (Não é bem provável).


2

No Fedora, pelo menos, o comando RPM tem as opções --setpermse --setugids, usando-as, você pode corrigir a maioria dos arquivos pertencentes ao sistema, como rpm --setugids -a. Para (um pouco) corrigir os arquivos de cada usuário, você pode fazer por cada um chown -R user /home/user. Provavelmente haverá sobras que não foram corrigidas pelos itens acima, especialmente se você tiver algum tipo de servidor (web, ftp, outros), essas terão que ser tratadas uma a uma.

Provavelmente outras distribuições têm mecanismos semelhantes. Ou faça uma atualização completa (ou seja, instale tudo de novo, como se de alguma forma estivesse danificado. OK, estava de alguma forma danificado).

[Sim, esta é mais uma vez a maneira bastante cruel do Unix de ensinar aos usuários inocentes a considerar cada comando com cuidado antes de pressionar ENTER, e usar o root com moderação . Considere-se ensinado.]


setuide as setgidpermissões precisam ser definidas manualmente. rpmnão os restaurará.
jnas

1

Se o seu uso do OSX apple fornece um recurso de restauração nos Utilitários de Disco para corrigir esse problema. Se você estiver usando uma distribuição Linux, tenho certeza de que precisará refazer todas as permissões manualmente. Em ambos os casos, bata nas mãos e não faça novamente


Provavelmente, é improvável que você possa se recuperar totalmente disso no Linux. Mesmo que o sistema funcione, você provavelmente perdeu algo que pode voltar a incomodá-lo mais tarde, como instabilidade ou vulnerabilidade de segurança. Eu diria que provavelmente é necessário restaurar uma abordagem de backup ou reconstrução.
precisa

0

Infelizmente, não conheço nenhuma maneira de "desfazê-lo", mas você provavelmente pode deixar os arquivos do sistema como pertencentes ao root e restaurar todos os arquivos em seu $ HOME para pertencer a você (e fazer o mesmo para todos os usuários do sistema). Nesse ponto, você pode corrigir permissões e / ou proprietário em cada arquivo que não esteja no diretório $ HOME que precisa dele conforme ele é lançado. Sim, isso é uma dor, mas não acho que haja uma solução fácil. Isso é o que eu faria de qualquer maneira.


0

Eu diria que você é muito "ferrado" como você diz. A melhor maneira (e mais eficiente) é reinstalar e restaurar itens críticos de seus bons backups. Desculpe, essa não é uma situação que geralmente tenha uma solução rápida com um final feliz. Boa sorte!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.