[ Содержание ]
Рассмотрим возможные форматы записи ACL.
[d[efault]:][u[ser]:][пользователь][:[+|^]права] [d[efault]:] g[roup]:[группа][:[+|^]права] [d[efault]:] m[ask][:[+|^]права] [d[efault]:] o[ther][:[+|^]права]
Почти все возможные варианты записи мы уже рассматривали. Осталось разобраться с default и специальными символами: + и ^.
Default — устанавливает ACL по умолчанию. Имеет смысл только для директории. Если создавать файлы в директории, у которой установлен ACL по умолчанию, то значения ACL копируются во вновь создаваемые файлы.
Если при написании ACL права доступа начинаются с символа +, то эти права добавляются к уже существующим. Если в начале описания прав стоит символ ^, то их значение отнимаются от существующих прав доступа.
У программы setfacl есть еще две интересные опции: –M и –X. Первая изменяет или добавляет ACL, вторая удаляет ACL. В отличии от –m и –x, список ACL передается не в командной строке, а в отдельном файле. Формат файла соответствует выводу программы getfacl.
$ getfacl newtest > aclfile $ cat aclfile # file: newtest # owner: artur # group: users user::rwx user:user1:r-x #effective:r-- group::r-- group:bin:rwx #effective:rw- mask::rw- other::r-- $
Теперь установим ACL, записанные в файле aclfile, на файл test.
$ setfacl -M aclfile test $ getfacl test # file: test # owner: artur # group: users user::rwx user:user1:r-x #effective:r-- group::r-- group:bin:rwx #effective:rw- mask::rw- other::r-- $
К сожалению, многие программы не показывают наличие у файла установленных ACL (приятным исключением является программа ls. Если на файл установлены ACL, она ставит символ + после стандартных прав доступа.). Новая технология, еще не все ее приняли к рассмотрению. Более того, стандартные программы работы с архивами в Linux не понимают ACL и не сохраняют их значение в архиве. То есть, у Вас могут возникнуть проблемы с резервным копированием файлов системы. Так что прежде чем использовать ACL хорошо подумайте, а так ли они Вам нужны?
[ Содержание ]