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.
chowndescrito, é provável que você não consiga fazer nada antes de instalar todo o sistema do zero; o sistema nem tem uma rootconta e sudonão funciona. Provavelmente vale a pena tentar inicializar em um shell de usuário único, mas não espere que funcione.
sudoou sunão funcionar quando todos os seus arquivos relevantes pertencerem a useruma 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 sudocomando. 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/foopertence ao usuário fooe que cada arquivo de spool de correio /var/mailpertence 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.