Como você usa 'find' para atualizar a propriedade de todos os diretórios, arquivos e links simbólicos em uma pasta?

1

Estou tentando atualizar a propriedade de tudo em uma árvore de diretórios de mim para o root. Estou usando find para fazer isso com um pouco mais de cuidado do que uma chown recursiva.

Aqui estão os comandos que uso para alterar a propriedade de todos os arquivos e diretórios na minha árvore:

cd /opt/mydir
# Update files
sudo find . -type f -execdir chown root:root "{}" +
# Update directories
sudo find . -type d -execdir chown root:root "{}" +

Estes funcionam bem para todos os arquivos e diretórios.

Mas notei que há links simbólicos em /opt/mydir que apontam para arquivos em algum lugar na mesma árvore de diretórios, dos quais ainda possuo propriedade.

Por exemplo:

lrwxrwxrwx  1 civfan civfan      6 Jul 18  2013 halt -> reboot
-rwxr-xr-x  1 root   root    14832 Jun 25  2013 reboot

Isso parece errado e parece que pode me causar problemas de permissão mais tarde, se eu não corrigir agora.

Como altero também a propriedade de todos os arquivos de link simbólico?

    
por CivFan 15.06.2015 / 18:36

1 resposta

0

A propriedade de links simbólicos não importa. É o direito referenciado que faz.

Dito isso, use find -l para descobrir links simbólicos em uma árvore de diretórios.

Use chown -h e / ou chmod -h para operar no link simbólico.

find . -type l -exec chown -h root:root {} +
    
por 15.06.2015 / 18:45