chown recursivamente mudou as permissões

30

Eu corri o comando chown em um diretório:

chown -R user:user {.,}*

O {.,}* é usado com mv e cp para incluir arquivos ocultos e listados. Agora este comando passou e mudou esses dois arquivos no meu diretório, mas eu tive que quebrá-lo para parar desde que ele continuou. Agora eu tenho medo que tenha ido e alterado as permissões em outros arquivos e pastas, uma vez que não terminou.

    
por nicoX 24.07.2014 / 17:35

1 resposta

45

Usando {.,}* , você incluiu ./ e ../ . Juntamente com a opção -R , sua chamada chown estava prestes a navegar em todo o seu sistema de arquivos (e outros, possivelmente montados), passando por ../ . Com outros comandos, este pequeno erro pode ser bastante mortal, mas acredite, você não é o primeiro, e você não será o último ...

Como esta operação é bastante pesada, sua chamada chown foi interrompida por um tempo, pois ela tinha muitos arquivos para processar. Sugiro que você volte para o diretório em que fez a chamada e volte progressivamente para / para ver quais alterações foram feitas. Você pode aplicar uma correção rápida:

chown root:root /* # Set ownership to root for all directories in /.
chown you:yourgroup /home/you -R # Take your home back.

No Ubuntu, o diretório /home é dado ao primeiro usuário (admin / sudo) registrado no sistema. Se você é o único usuário, talvez queira fazer:

chown you:yourgroup /home -R

No entanto, um simples chmod 755 on /home é suficiente, mesmo se pertencer à raiz.

Ter uma rápida olhada diretamente em / (incluindo as próprias permissões de root, ls -ld / ) também seria um bom lugar para começar. Eu sugiro que você tenha certeza de que / pertence ao root, com um conjunto de 755 permissões.

Se você usou chown para definir uma propriedade muito específica (um usuário diferente de você ou root, um grupo raro, ...), convém usar find para procurar por arquivos chown -ed .

find / -user {username}
find / -group {groupname}

Infelizmente, não existe undo para o que você fez. O Linux não acompanha naturalmente essas operações "casuais".

Para mais informações sobre o que você estava tentando alcançar, consulte esta questão do SuperUser .

    
por John WH Smith 24.07.2014 / 17:42

Tags