Я протестировал ACL для локальных папок, и я отлично работаю.
Но в моем пуле zfs, называемом «tank»
root@datacenter:/mnt# ls datatank test webmin_1.650_all.deb root@datacenter:/mnt# setfacl -m u:casper:rwx datatank setfacl: datatank: Operation not supported
Как добавить поддержку acl для моей системы zfs?
Что не так?
Используйте
zfs set acltype=posixacl tank/datatank
ZFS имеет 2 свойства ACL: "aclinherit" & amp; «aclmode» , хотя мне не удалось заставить aclmode работать должным образом, но я думаю, что это было недавно устарело.
Кроме того, эти 2 свойства имеют несколько режимов.
aclinherit: определяет поведение наследования ACL. Значения включают следующее:
ограничено - для новых объектов разрешения write_owner и write_acl удаляются при наследовании записи ACL.
passthrough - когда для свойства установлено значение passthrough, файлы создаются в режиме, определяемом наследуемыми ACE. Если не существует наследуемых ACE, которые влияют на режим, тогда режим устанавливается в соответствии с запрошенным режимом из приложения.
passthrough-x - имеет ту же семантику, что и passthrough, за исключением того, что когда passthrough-x включен, файлы создаются с разрешением execute (x), но только если разрешение на выполнение установлено в режиме создания файла и в наследуемом ACE, который влияет на режим.
aclmode: (опять же, я не смог заставить его работать на моей версии, так что будьте осторожны!) изменяет поведение ACL при первоначальном создании файла или всякий раз, когда режим файла или каталога изменяется командой chmod. Значения включают следующее:
discard - удаляются все записи ACL, за исключением записей, необходимых для определения режима файла или каталога.
groupmask - Разрешения ACL пользователя или группы уменьшаются, так что они не превышают биты разрешения группы, если только это не запись пользователя, имеющая тот же UID, что и владелец файла или каталога. Затем разрешения ACL уменьшаются, так что они не превышают биты прав владельца.
passthrough - Во время операции chmod ACE, кроме владельца @, группы @ или всех @, не изменяются никаким образом. ACE с владельцем @, группой @ или всеми @ отключены для установки режима файла в соответствии с запросом операции chmod.
Например, вы должны установить acl для «tank / datatank» (не ваша точка монтирования, а фактический пул) следующим образом:
zfs set "ACL-PROPERTY"="ACL-MODE" tank/datatank
более конкретно
zfs set aclinherit=passthrough tank/datatank
Источники:
http://docs.oracle.com/cd/E19120-01/open.solaris/817-2271/gbaaz/index.html [ 112]