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?

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'

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).


0

Versão Perl:

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

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 .
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.