chown -R root.root /

3

Então eu estava trabalhando e havia um diretório que eu estava periodicamente mudando para o meu usuário em um terminal raiz para que eu pudesse abrir os arquivos em editores de texto, mas eu acidentalmente pressionei / em vez de. e este foi o comando que eu coloquei:

chown -R emil.emil /

Em seguida, imediatamente entrei em p

chown -R root.root /

Agora, não consigo fazer su de emil para tentar corrigir isso, pois estou recebendo permissão de erro negado. Eu estou no Ubuntu alguém poderia me dizer se há uma maneira que eu poderia consertar isso, sem absolutamente reinstalar a coisa toda.

DICA

Se você está tentando obter acesso root, e está recebendo esta permissão negou o erro ao usar su , tente este comando:

gksu gnome-terminal

Ele solicitará a senha do root e abrirá um novo terminal raiz, por alguma razão, isso funciona e me dá acesso root, quando su não.

    
por Emil 17.02.2012 / 03:50

3 respostas

5

O sistema de arquivos descendente de / tem uma variedade de permissões de propriedade para alcançar coisas diferentes.

A correção que você tentou faz com que root seja o proprietário de tudo, e assim, para muitas operações (incluindo o acesso a arquivos em / home / emil), root é o único usuário que irá trabalhar.

Então, suas opções são:

  1. Restaurar do backup
  2. Reinstalar
  3. Inicialize no modo de usuário único e aplique manualmente o proprietário correto a cada arquivo

Assumirei que 1. está fora da tabela e 2. não é uma opção preferida.

No menu do Grub, quando você inicializa o Ubuntu, você deve ter uma opção de recuperação no momento da inicialização. Se você não vê o menu do grub (aparece antes de qualquer coisa depois da bios) então segure a esquerda Shift e ele irá aparecer. Escolhendo isso irá inicializar no modo de usuário único, onde você está logado como root.

A partir daí, você pode começar a alterar a propriedade. A primeira coisa seria

 chown -R emil /home/emil

O que fará de você o proprietário dos seus próprios arquivos. Para o restante, talvez você queira fazer uma instalação em outra máquina para comparar a propriedade de arquivos ou iniciar cada serviço usado em /etc/init.d e observar os motivos da falha (observe que um serviço pode falhar simplesmente porque é incapaz de gravar seus logs em / var / log e, portanto, não pode fornecer relatórios de erros).

Isso seria um processo extremamente demorado, mas a re-instalação poderia ocorrer. Note que qualquer configuração pessoal que você tenha feito no Ubuntu e nas configurações do aplicativo será armazenada no / home / emil heirachy, copiando esses arquivos em outro lugar, reinstalando o SO e os aplicativos, e copiá-los de volta é uma opção muito mais rápida.

    
por 17.02.2012 / 04:27
4

Se você tiver um sistema semelhante em mãos, poderá usar find para descobrir o proprietário e o grupo corretos para cada arquivo, por exemplo, usando:

find / -printf "%u:%g %p\n" > permissions.txt

que produzirá resultados como o seguinte:

root:root /
root:root /usr
root:staff /usr/local
root:staff /usr/local/man
root:staff /usr/local/games
root:staff /usr/local/lib
root:staff /usr/local/lib/python2.7
root:staff /usr/local/lib/python2.7/dist-packages
root:staff /usr/local/lib/python2.7/site-packages
root:staff /usr/local/lib/python3.2
[...]

Você pode, então, iterar por meio desse e de chown cada arquivo para seu proprietário e grupo originais.

while read line
do
    chown $line
done < permissions.txt

Eu duvido que isso consertará tudo perfeitamente já que permissões e arquivos diferem entre sistemas, mas é um começo e deve pelo menos fazer o sistema básico voltar ao padrão

    
por 17.02.2012 / 05:09
1

Estou mais familiarizado com o Fedora, mas minha sugestão seria inicializar de um CD ao vivo e copiar seus dados da máquina e reinstalá-los.

Você poderia usar as informações do gerenciador de pacotes (apt / dpkg) para descobrir qual deveria ser a propriedade de todos os arquivos no sistema. Eu poderia descobrir como fazer isso com o rpm, mas não estou tão familiarizado com o apt / dpkg. Qualquer segurança reforçada, como o SELinux, também pode complicar as coisas.

rpm -qa --list -v fornece as informações necessárias em um sistema baseado em rpm, que você teria que analisar e alimentar para chown. Se você puder encontrar o equivalente para o apt / dpkg, você pode chegar lá.

    
por 17.02.2012 / 04:19