Como procurar arquivos com uma permissão específica

8

Como posso procurar arquivos que tenham uma permissão específica. Por exemplo, eu tenho 10000 arquivos e quero encontrar os que possuem o sinalizador READ ONLY. Em outro caso, quero procurar outro que tenha um proprietário específico. Ou em outro, para ver os arquivos que são LER SOMENTE e EXECUTÁVEIS.

Luis Alvarado
fonte

Respostas:

9

Provavelmente é mais fácil usar o findcomando, que permite pesquisar recursivamente na árvore de diretórios. Por exemplo, se você deseja encontrar particularmente arquivos que são somente leitura, digite

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 pertencem a um grupo, substituindo -user mikepara -group mike.

Para negar os termos de pesquisa e, portanto, procurar exatamente o oposto, use um ponto de exclamação como este:

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

Nota: 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 e somente isso 444, basta remover o traço (por exemplo -perm 444).

Nota2: Combinações de permissões também podem ser buscadas usando -afor e -ofor for; por exemplo, para encontrar exatamente essas permissões, digite:

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

Diretórios podem ser pesquisados ​​com -type d.

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


fonte
+1 por mencionar a diferença entre -444e444
Fr0zenFyr 20/17/17
Para mim, -perm -444localiza arquivos que têm readpermissão, não aqueles que são somente leitura (ou seja, tendo apenas read e sem outras permissões).
Jānis Elmeris 24/10/19