POSIX encontra todos os arquivos não legíveis

5

Estou tentando localizar todos os não legíveis 'ACL-wise' em um subdiretório de outro usuário www-data e em um servidor 'FreeBSD'. Este servidor me impede de usar o comando find . ! -readable

Como posso encontrar todos os arquivos não legíveis (pelo usuário atual) em um diretório?

    
por Pierre-Antoine Guillaume 13.09.2018 / 10:14

1 resposta

7

Você sempre pode fazer:

find . -exec sh -c '
  for file do
    [ -r "$file" ] || printf "%s\n" "$file"
  done' sh {} +

Para listar os arquivos você não tem permissão de leitura.

Observe que, para links simbólicos, isso verifica o destino do symlink.

Também, obviamente, não reportará arquivos em diretórios que você não tenha permissão de leitura (que podem conter arquivos aos quais você tenha acesso de leitura (contanto que você tenha acesso de pesquisa ao diretório) e / ou arquivos que você não possui acesso de leitura para).

No FreeBSD, você também deve ser capaz de fazer:

find . -print0 | perl -Mfiletest=access -l -0ne 'print unless -r'

Ou

sudo find . -print0 | perl -Mfiletest=access -l -0ne 'print unless -r'

Para listar também os arquivos nos diretórios aos quais você não tem acesso de leitura.

(nem sudo , -print0 nem perl são especificados por POSIX).

    
por 13.09.2018 / 10:48

Tags