Сначала я создаю файл и проверяю его стандартные разрешения и записи ACL:
$ touch file; ls -l file; getfacl file
-rw-r--r-- 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
other::r--
Затем я устанавливаю маску ACL для файла и снова проверяю его стандартные разрешения и записи ACL:
$ setfacl -m mask:rwx file
$ ls -l file; getfacl file
-rw-rwxr--+ 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
mask::rwx
other::r--
Обратите внимание, что наряду с маской ACL стандартное групповое разрешение на файл также изменилось.
- Какая связь существует между маской ACL и стандартным разрешением группы?
- В чем причина сочетания маски ACL и разрешений группы файлов? Какая логика стоит за этим?
Рассматриваемые дистрибутивы: Debian Linux 7.6 и CentOS 7
РЕДАКТИРОВАТЬ
На данный момент я просто хотел поделиться некоторыми своими выводами, которые я сделал при исследовании отношений между стандартными правами группы файлов и маской ACL. Вот эмпирические наблюдения, которые я нашел:
Маска ACL может быть изменена:
- непосредственно установив его
setfacl -m m:<perms>
командой; - изменяя права доступа к группе файлов с помощью
chmod
команды (если маска ACL уже присутствует; она может отсутствовать, потому что она необязательна, если в файле нет именованных прав доступа ACL для имени пользователя или группы); - добавив запись ACL с именем пользователя или группы (маска будет автоматически пересчитана).
- непосредственно установив его
Маска будет обеспечивать максимальные права доступа (если есть записи ACL с имеющимися разрешениями, которые превышают разрешения маски ACL), только если маска устанавливается непосредственно с помощью setfacl или путем изменения разрешения группы файлов с помощью chmod (не рассчитывается автоматически). Любые изменения в записях ACL приведут к автоматическому пересчету маски ACL и фактически отключат «принудительный режим».
Существует несколько побочных эффектов, неявно влияющих на стандартные разрешения файловой группы при использовании ACL:
- Запись ACL с именованным пользователем или группой, примененная к файлу, может изменить маску ACL (увеличить ее разрешения) и, следовательно, эффективные разрешения группы файлов. Например, если у вас, как у владельца файла, установлены разрешения «rw-r - r-- jim Students», и вы также предоставляете разрешение rw пользователю «jack», вы также неявно предоставляете разрешения rw любому из группы "студенты".
- Более строгая (меньше разрешений) маска ACL может навсегда удалить соответствующие стандартные разрешения файловой группы. Например, если у вас есть файл со стандартными правами доступа к группе файлов rw, и вы применяете маску ACL только для чтения к файлу, его права доступа к группе уменьшатся до уровня только для чтения. Затем, если вы удалите все расширенные записи ACL (с помощью
setfacl -b
команды), разрешения группы останутся только для чтения. Это относится только к более строгой маске ACL, более мягкая маска ACL (больше разрешений) не изменяет навсегда разрешение исходной группы файлов после ее удаления.