Chown acidental sob / como root

0

Eu acidentalmente executo o seguinte comando como root %código% O ponto é que eu adicionei um espaço entre / e backups meu erro, eu parei o comando após 1-2 segundos, como posso recuperar isso? Eu tenho problemas com DirectAdmin agora, por exemplo, ao acessá-lo eu recebo o erro:

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

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

    
por Eldar 01.05.2013 / 15:04

4 respostas

3

Não há como alterar isso de volta sem reverter seu backup, pois o sistema não acompanha a revisão de propriedade.

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

Reinstalar os pacotes em seu sistema provavelmente resolve a maioria dos problemas de propriedade. No Debian / Ubuntu eu faria:

apt-get install --reinstall package

em um sistema baseado em rpm , algo como rpm -Uvh --force package.rpm para 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 nos quais você está interessado:

find / -user mike

e use essa lista para localizar arquivos de propriedade não pertencente ao microfone no sistema de backup ou semelhante.

    
por 01.05.2013 / 15:20
3

Isso depende do SO que você está executando.

Se for o Solaris 10 e mais antigo, você poderá corrigir todos os problemas do 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ê rodar um sistema operacional baseado em rpm (Red Hat, Fedora e outros), você deve ser capaz de rodar

rpm -aV

para detectar os arquivos e diretórios com discrepâncias no banco de dados de pacotes. Você pode corrigi-los executando:

rpm --setugids <package-name>

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

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

Se você estiver executando um sistema operacional baseado no Debian, temo que a propriedade do arquivo não seja armazenada no banco de dados do pacote, portanto você precisaria usar seu backup como referência para restaurar a propriedade ou encontrar um sistema semelhante para o mesmo.

    
por 02.05.2013 / 00:00
1

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

    
por 01.05.2013 / 15:12
1

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

chown -R root:root /folder/subfolder /

Eu não percebi o espaço antes da barra: (

Espero que, perguntando aqui, finalmente eu resolvi o problema, pegando o dono e o 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 em que preciso restaurar o proprietário e o grupo de arquivos e fiz um:

./chown_owner_and_group.sh
    
por 12.02.2018 / 12:12