getfacl и find для выявления нестандартных правВ Linux права доступа обычно проверяют через:
ls -l
Но этого недостаточно. Если у файла есть ACL (Access Control List), дополнительный пользователь или группа могут иметь доступ, которого не видно в стандартном выводе.▪️Проверяем ACL у файла
getfacl /etc/passwd
Обычный вывод:user::rw-
group::r--
other::r--
Если есть дополнительные правила:user::rw-
user:backup:r--
group::r--
mask::r--
other::---
Здесь пользователь backup получил отдельное разрешение.▪️Как найти файлы с ACL
Команда
find умеет искать расширенные ACL:find / -type f -acl 2>/dev/null
Но на многих системах удобнее использовать проверку через getfacl:find /etc -type f -exec getfacl -p {} \; 2>/dev/null | grep "^user:"
▪️Проверка конкретного каталогаНапример, ищем нестандартные права в
/srv:getfacl -R /srv
Обращаем внимание на строки:user:name:
group:name:
Они показывают дополнительные разрешения.▪️Удаление лишних ACL
Если доступ больше не нужен:
setfacl -b file.txt
Ключ -b удаляет все дополнительные ACL, оставляя только обычные Unix-права.▪️Почему ACL часто забывают
Администратор может изменить права:
chmod 600 secret.txt
и считать файл закрытым.Но если раньше был добавлен ACL:
user:john:r--
пользователь John всё ещё может читать файл.▪️Почему это важно
ACL полезны для сложных систем с большим количеством пользователей, но они усложняют аудит. При расследовании проблем с доступом всегда нужно проверять не только
chmod, но и расширенные правила через getfacl.BashTex 📱 #bash #linux