Como procurar arquivos com uma permissão específica

6

Como posso pesquisar por arquivos que tenham uma permissão específica? Por exemplo, eu tenho 10000 arquivos e quero encontrar aqueles que têm o sinalizador READ ONLY. Em outro caso, quero procurar outro que tenha um dono específico. Ou em outro para ver os arquivos que são somente leitura e executáveis.

    
por Luis Alvarado 01.08.2012 / 01:20

1 resposta

7

É provavelmente mais fácil usar o comando find , que permite pesquisar recursivamente pela árvore de diretórios. Por exemplo, se você quisesse encontrar arquivos que eram somente de leitura, poderia digitar

find <specify location> -type f -perm -444

Para arquivos pertencentes a um usuário específico, você pode usar

find <location> -type f -user mike

Para arquivos executáveis (para todos) você pode usar

find <location> -type f -perm -777

Para aqueles que são executáveis e somente leitura para todos, você usaria 555 no lugar de 777 no exemplo acima. Você também pode procurar por arquivos que pertençam a um grupo substituindo -user mike por -group mike .

Para negar os termos de pesquisa e pesquisar exatamente o oposto, você pode usar um ponto de exclamação assim:

find <location> -type f ! -perm -444 

Observação: a especificação de um traço antes das permissões (por exemplo, -perm -444 ) significa que todos os arquivos que possuem um sinalizador somente leitura serão encontrados, e não apenas aqueles que são 444; para procurar exatamente 444 e apenas isso, basta remover o traço (por exemplo, -perm 444 ).

Observação 2: combinações de permissões também podem ser solicitadas usando -a para e e -o para ou; por exemplo, para encontrar exatamente essas permissões, digite:

find <location> -type f -perm 744 -o -perm 666

Os diretórios podem ser pesquisados com -type d .

Veja man find para as outras permutações disponíveis.

    
por user76204 01.08.2012 / 02:03

Tags