Respostas:
Em resumo: não.
Você precisará restaurar a partir de um backup. (Algumas ferramentas de backup podem ter opções para restaurar apenas a permissão, outras podem listar arquivos de backup com suas permissões e você pode usá-lo para corrigir seu sistema.)
Se você não tiver um backup, precisará corrigir tudo isso manualmente.
sudo chown -R user:user /
, é provável que o sistema seja tão mal administrado que você não possa restaurar a partir de um backup.
chown
descrito, é provável que você não consiga fazer nada antes de instalar todo o sistema do zero; o sistema nem tem uma root
conta e sudo
não funciona. Provavelmente vale a pena tentar inicializar em um shell de usuário único, mas não espere que funcione.
sudo
ou su
não funcionar quando todos os seus arquivos relevantes pertencerem a user
uma questão é diferente (provavelmente não porque, entre outras coisas, o bit SUID no exe terá desaparecido).
Somente se você souber a propriedade do usuário e do grupo de cada arquivo e diretório em seu /
diretório.
Mesmo assim, você já detestou a propriedade de arquivos críticos do sistema que precisam pertencer à raiz, incluindo o sudo
comando. Você provavelmente precisará montar o disco rígido em outro sistema - e esteja ciente de que o outro sistema provavelmente não terá os mesmos mapeamentos UID e GID que o que você acabou de derrotar.
Faça uma cópia de todo o disco rígido, se puder, e reinstale o sistema operacional. Depois de fazer isso, você pode tentar copiar os arquivos de volta para o sistema recém-limpo e restaurar suas propriedades. Provavelmente, você pode assumir (embora não seja 100% confiável) que tudo o que está abaixo /home/foo
pertence ao usuário foo
e que cada arquivo de spool de correio /var/mail
pertence ao usuário apropriado (se você tiver um email no sistema). Você pode fugir sem restaurar a maioria dos arquivos que não estão abaixo /home
, dependendo do que você fez com o sistema.
E então comece a cultivar o hábito de verificar novamente qualquer comando sob o qual você executa sudo
antes de clicar Enter.
Se sua distribuição for baseada em RPM, você poderá restaurar SOMENTE os arquivos instalados pelos pacotes rpm.
Para restaurar todas as permissões de pacote:
rpm --setperms -a
Para restaurar todo o proprietário do pacote (usuário / grupo):
rpm --setugids -a
Se -a não for executado, você poderá executar um loop bash:
Para permissões:
for x in $(rpm -qa); do rpm --setperms $x; done
Para o proprietário:
for x in $(rpm -qa); do rpm --setugids $x; done
Extraído de: http://www.sysadmit.com/2016/10/linux-restaurar-permisos-de-un-paquete.html
Você pode armazenar as versões atuais e analisá-las para reverter usando a opção -v.
chown -R nobody:nobody -v /tmp/some_file > /tmp/chown.log
cat /tmp/chown.log
O conteúdo seria:
changed ownership of `/tmp/some_file' from me:users to nobody:nobody
Usando sua linguagem de script favorita e expressões regulares, você pode executar o doloroso processo de revertê-las (se necessário).
Eu recomendo fortemente não fazer uma checagem recursiva em / como você expõe o / etc / shadow ou qualquer outro arquivo importante.
sudo chown -R user:user ..
pode ter o mesmo efeito que o mencionado aqui, se você estiver um nível abaixo da raiz do sistema de arquivos. Não tente algo assim.