Chown acidental sob / como root

Chown acidental sob / como root

Eu acidentalmente executei o seguinte comando como root, chown mike -Rf / backups a questão é que adicionei um espaço entre / e backups, meu erro, parei o comando após 1-2 segundos, como posso me recuperar disso? Estou com problemas com o DirectAdmin agora, por exemplo, ao acessá-lo, recebo o erro:

Unable to determine Usertype
user.conf needs to be repaired
http://help.directadmin.com/item.php?id=456

Ou parei de receber e-mails, nem sei o que mais está acontecendo agora...

Responder1

Não há como reverter isso sem reverter para o backup, pois o sistema não rastreia a revisão de propriedade.

O melhor é fazer um backup agora, para que quaisquer alterações adicionais possam ser revertidas.

A reinstalação dos pacotes no seu sistema provavelmente resolve a maioria dos problemas de propriedade. No Debian/Ubuntu eu faria:

apt-get install --reinstall package

em um rpmsistema baseado, algo como rpm -Uvh --force package.rpm qualquer coisa que esteja causando problemas. Se configurado corretamente, um pacote não substituirá os arquivos de configuração que você alterou.

Se você tiver outro sistema semelhante ou um backup, poderá recuperar as informações de propriedade originais que se aplicam ao seu sistema. Primeiro faça uma lista de arquivos e diretórios que você tem interesse em usar:

find / -user mike

e use essa lista para encontrar arquivos que não pertencem ao Mike no backup ou sistema semelhante.

Responder2

Isso depende do sistema operacional que você está executando.

Se for Solaris 10 e anterior, você poderá corrigir todos os problemas de proprietário que afetam arquivos e diretórios pertencentes a um pacote com o seguinte comando:

pkgchk -f

Com o Solaris 11, isso seria:

pkg fix

Acredito que o AIX tenha um comando de correção de pacote semelhante.

Se você executa um sistema operacional baseado em rpm (Red Hat, Fedora e similares), você deve ser capaz de executar

rpm -aV

para detectar os arquivos e diretórios com discrepâncias em relação ao banco de dados do pacote. Você pode então corrigi-los executando:

rpm --setugids <package-name>

Mas você precisaria passar o nome de cada pacote afetado. Alternativamente, você pode simplesmente executar:

for package in $(rpm -qa); do rpm --setugids $package; done

Se você estiver executando um sistema operacional baseado em Debian, receio que a propriedade do arquivo não esteja armazenada no banco de dados do pacote, então você precisará usar seu backup, se houver, como referência para restaurar a propriedade ou encontrar um sistema semelhante para o mesmo .

Responder3

Cometi exatamente o mesmo erro, por um erro tipográfico no final da frase

chown -R root:root /folder/subfolder /

Não percebi o espaço antes da barra :(

Esperançosamente, perguntando aqui, finalmente resolvi o problema, retirando proprietário e grupo de outro servidor Debian instalado. Nesse servidor, eu fiz:

find / -not -path '/proc/*' -not -path '/var/www/*' -not -path '/home/*' ! \(  -name root -o  -group root \) | xargs stat --format 'chown %U:%G %n' | sort -k 2,3 > chown_owner_and_group.sh
chmod +X chown_owner_and_group.sh

Em seguida, copio o arquivo para o servidor onde preciso restaurar o proprietário e o grupo de arquivos e faço:

./chown_owner_and_group.sh

Responder4

Receio que a única solução que você tenha seja comparar com outra instalação da mesma distribuição e redefinir os proprietários corretamente.

informação relacionada