Como `encontrar` todos os arquivos e pastas com permissões 0 **?

Como `encontrar` todos os arquivos e pastas com permissões 0 **?

Tive uma situação estranha em que encontrei vários arquivos e pastas com 000 permissões definidas. Isso foi facilmente reparável por meio de:

sudo find . -perm 000 -type f -exec chmod 664 {} \; 
sudo find . -perm 000 -type d -exec chmod 775 {} \;

Infelizmente, de repente percebi que o problema era um pouco mais complicado com algumas permissões estranhas, como 044 e algumas outras configurações estranhas. Acontece que estes estão espalhados e imprevisíveis.

Existe uma maneira de procurar permissões como 0 ** ou outras configurações de permissão muito limitantes?

Responder1

Eu usaria algo assim:

find . ! -perm -u=r ! -perm -u=w ! -perm -u=x -ls

Ou se preferir a notação octal:

find . ! -perm -400 ! -perm -200 ! -perm -100 -ls

Infelizmente, não tenho ideia de como considerar isso uma -permopção.

A sintaxe acima é padrão, exceto para a -lsparte (comum, mas não POSIX) que você pode substituir em -exec ls -disl {} +sistemas onde findnão há suporte -lspara obter uma saída semelhante.

Responder2

ComGNUfind, você pode fazer isso procurando por arquivos que não correspondam a “nenhum bit definido para o proprietário”:

find . ! -perm /700

O mesmo em, por exemploFreeBSDfindé

find . ! -perm +700

Ambos funcionam da mesma maneira. -perm /700ou -perm +700combine se algum dos bits de permissão do proprietário estiver definido; !nega isso, então ! -perm /700ou ! -perm +700match se nenhum dos bits de permissão do proprietário estiver definido. Os outros bits são ignorados.

Responder3

Se você usa sfindou qualquer programa usando libfindou se você usa BSD find, você pode usar:

find path -perm +0xxx

para encontrar arquivos onde qualquer um dos bits mencionados no padrão está definido, então

find . ! -perm +0700

deve funcionar no seu caso. Aliás: isso também é suportado por GNU find.

Observe que esta é uma extensão que não é mencionada no POSIX nem implementada em um arquivo find.

informação relacionada