O que esse comando “find” faz?

0

Sou tão iniciante no Linux e executei o seguinte comando enquanto estou no /root :

find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \

Eu quis executar isso em uma pasta específica, mas não notei que estava em /root .

Isso afetou todos os arquivos da máquina?

    
por Whaaaaat 21.04.2016 / 11:16

3 respostas

6

Se você tiver permissões suficientes, os comandos find alterarão recursivamente os bits de permissão de todos os arquivos para 660 e todos os diretórios para 770 a partir do diretório em que são executados.

Como você estava no diretório inicial /root ( root ) e supondo que você estava executando como root e o proprietário user:group é root:root , isso não deve ser um grande problema, exceto que alguns programas podem reclamar sobre alguns arquivos ou diretórios específicos, como ssh pode reclamar sobre as permissões do /root/.ssh directory e /root/.ssh/authorized_keys file ao fazer autenticação baseada em chave, você precisa corrigi-los manualmente.

Além disso, não execute nenhum comando encontrado na natureza cegamente, você deve perguntar primeiro o que o comando faz e depois executá-lo.

    
por heemayl 21.04.2016 / 11:32
2

Esse comando localiza todos os diretórios de dentro do diretório em que você executou o comando e modifica suas permissões. Em seguida, faz o mesmo, mas com arquivos. Nesse caso, o comando altera as permissões dos diretórios para que você tenha acesso total, mas os outros usuários não terão acesso. Se você é o único usuário do sistema, isso não deve importar. O comando altera as permissões dos arquivos dentro de / root para permitir somente acesso de leitura e gravação, mas não permite a execução. Você pode encontrar alguns problemas com a execução de programas e scripts, mas nada que cause um grande impacto. Outros usuários também não terão acesso a arquivos dentro de / root.

se você encontrar um script ou programa que não pode ser executado a partir de /root , basta executar esse comando no arquivo:

sudo chmod 775 filename

onde filename é substituído pelo nome do arquivo que você está tentando executar

Se houver outros usuários do sistema e você quiser que todos possam ler de diretórios e arquivos, pode valer a pena executar o comando novamente, mas alterando-o ligeiramente para:

find . -type d -exec chmod 775 {} \; && find . -type f -exec chmod 664 {} \;
    
por T3CHI5 21.04.2016 / 11:30
0

Esse primeiro ponto após o comando é a raiz da árvore em que find pesquisa. Então isso afetou os arquivos da pasta que você executou e a árvore inteira abaixo dela.

    
por madmax 21.04.2016 / 11:29