Eu tive uma situação estranha em que encontrei vários arquivos e pastas que tinham 000 permissões definidas. Isso foi facilmente reparável via:
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 pesquisar permissões como 0 ** ou outras configurações de permissão muito limitantes?
Eu usaria algo assim:
Ou se preferir a notação octal:
Infelizmente, não faço ideia, como tomá-lo como uma
-perm
opção.Essa sintaxe acima é padrão, exceto para a
-ls
parte (comum, mas não POSIX) que você pode substituir-exec ls -disl {} +
em sistemas ondefind
não há suporte-ls
para obter uma saída semelhante.Com GNU
find
, você pode fazer isso procurando por arquivos que não correspondam a “qualquer bit definido para o proprietário”:O mesmo em, por exemplo, FreeBSD
find
éAmbos funcionam da mesma maneira.
-perm /700
ou-perm +700
corresponder se algum dos bits de permissão do proprietário estiver definido;!
nega isso, então! -perm /700
ou! -perm +700
corresponde se nenhum dos bits de permissão do proprietário estiver definido. Os outros bits são ignorados.Se você usa
sfind
ou qualquer programa usandolibfind
ou se você usaBSD find
, você pode usar:para encontrar arquivos onde qualquer um dos bits mencionados no padrão está definido, então
deve funcionar no seu caso. BTW: isso também é suportado pelo
GNU find
.Observe que esta é uma extensão que não é mencionada no POSIX nem implementada em um SVr4 baseado
find
.