encontre arquivos com ACLs definidas

15

Como posso encontrar todos os arquivos com algumas ACLs estendidas definidas, ou seja, aqueles com um pouco +no final dos sinalizadores de permissão mostrados por ls -l.

Não foi possível encontrar uma bandeira correspondente para find. Minha abordagem ingênua seria findcombinada com ls -le a grep. Mas não acho isso legal.

Alguém tem uma ideia?

Speckinius Flecksis
fonte

Respostas:

14

getfaclpode despejar ACLs recursivamente e tem uma --skip-baseopção para ignorar arquivos sem ACLs.

getfacl -R -s -p /directory | sed -n 's/^# file: //p'
user1686
fonte
0

Eu achei isso pesquisando o contrário; para encontrar arquivos sem ACLs definidas. Foi com isso que eu acabei (no caso de algum outro pesquisador encontrar)

ls --color=auto -lR | grep -v "\+ " | grep -v "^[.,a-z,1-9]" | grep -v "^$"

Aparentemente, ls -Ré mais rápido que o find (eu tenho um kilhão de arquivos e cada comando find está me levando 2 horas).

matiu
fonte
0

Versão Perl:

getfacl -R -p -s  / | perl -wn -e ' if (/^# file/) { s|^# file: /||; print; }'
Nicola Mingotti
fonte
0

-R: Lista as ACLs de todos os arquivos e diretórios recursivamente.

-s: Ignore os arquivos que possuem apenas as entradas da ACL base (proprietário, grupo, outros).

getfacl -Rs .
getfacl --recursive --skip-base .
Asa de aço
fonte