найти файлы с установленными списками ACL

15

Как я могу найти все файлы с некоторыми расширенными списками ACL, т.е. те, у которых немного +в конце флагов разрешений, показанных ls -l.

Я не мог найти соответствующий флаг для find. Мой наивный подход был бы в findсочетании с ls -lи grep. Но я не думаю, что это хорошо.

У кого-нибудь есть идея?

Спецкиний Флексис
источник

Ответы:

14

getfaclможет рекурсивно создавать дамп ACL, и у него есть --skip-baseвозможность игнорировать файлы без ACL.

getfacl -R -s -p /directory | sed -n 's/^# file: //p'
user1686
источник
0

Я нашел это прибегая к помощи противоположного; чтобы найти файлы без установленных ACL. Это то, что я закончил (на случай, если какой-то другой гуглер найдет это)

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

Очевидно, ls -Rэто быстрее, чем поиск (у меня есть kagillion файлы, и каждая команда поиска занимает у меня 2 часа).

matiu
источник
0

Версия Perl:

getfacl -R -p -s  / | perl -wn -e ' if (/^# file/) { s|^# file: /||; print; }'
Никола Минготти
источник
0

-R: Список ACL всех файлов и каталогов рекурсивно.

-s: Пропустить файлы, которые имеют только базовые записи ACL (владелец, группа, другие).

getfacl -Rs .
getfacl --recursive --skip-base .
Steely Wing
источник