Solaris zfs acl: как принудительно установить наследование acl для “others”?

Вопрос или проблема

С этим ACL

chmod A=owner@:wpdDxrarRsWwA:df:allow,group:nfs-users:wpdDxrarRsWwA:df:allow,everyone@:wpdDxrarRsWwA:df:deny /directory

Я добиваюсь того, что каталог доступен только для nfs-users и владельца, и все файлы и каталоги, созданные внутри, имеют разрешение 770. Работает нормально, но больше не монтируется через NFS. Какой ACL позволяет внешнее монтирование? Я пробовал добавить пользователей root и nobody

chmod A=owner@:wpdDxrarRsWwA:df:allow,group:nfs-users:wpdDxrarRsWwA:df:allow,everyone@:wpdDxrarRsWwA:df:deny,user:root:ww pdDxrarRsWwA:allow,user:nobody:wpdDxrarRsWwA:allow,group:nobody:wpdDxrarRsWwA:allow

но это не работает, только если я удаляю строку “everyone”, каталог может быть смонтирован через NFS. Невозможно ли получить каталог с наследуемыми разрешениями 770 и одновременно монтируемый через NFS?

Сервер Solaris, клиент Linux.

Решение найдено, ACL читаются по порядку, так что “everyone” идет после nfs-users и ок, но перед root и nobody, поэтому доступ для них запрещен (разрешения для nobody также слишком расширены, возможно, я их скорректирую). Используя эту строку, все работает нормально

chmod A=owner@:wpdDxrarRsWwA:df:allow,group:nfs-users:wpdDxrarRsWwA:df:allow,user:root:wpdDxrarRsWwA:allow,user:nobody:ww
pdDxrarRsWwA:allow,group:nobody:wpdDxrarRsWwA:allow,everyone@:wpdDxrarRsWwA:df:deny

Это также лучше с более ограниченными разрешениями

chmod A=owner@:wpdDxrarRsWwA:df:allow,group:nfs-users:wpdDxrarRsWwA:df:allow,user:nobody:cRarx:allow,group:nobody:cRarx:allow,everyone@:wpdDxrarRsWwA:df:deny /var/pubblica

.

Ответ или решение

Для решения проблемы с управлением наследованием прав ACL (Access Control List) для "других" в файловой системе Solaris ZFS, было необходимо скорректировать порядок расположения правил ACL. В вашем случае проблема заключалась в блокировке прав для пользователей root и nobody из-за строки everyone@, которая приоритетно вызывала отказ в доступе, находясь выше в списке.

Анализ проблемы

При установке следующего ACL:

chmod A=owner@:wpdDxrarRsWwA:df:allow,group:nfs-users:wpdDxrarRsWwA:df:allow,everyone@:wpdDxrarRsWwA:df:deny /directory

доступ к каталогу не был возможен для протокола NFS, потому что правила ACL устанавливались в некорректном порядке. Правило everyone@ представляет собой глобальный отказ в доступе, которое переопределяло все последующие разрешения.

Корректное решение

Ваша корректировка, где строки были переставлены, исправила данную проблему:

chmod A=owner@:wpdDxrarRsWwA:df:allow,group:nfs-users:wpdDxrarRsWwA:df:allow,user:root:wpdDxrarRsWwA:allow,user:nobody:wwpdDxrarRsWwA:allow,group:nobody:wpdDxrarRsWwA:allow,everyone@:wpdDxrarRsWwA:df:deny

Теперь NFS-сервер может корректно монтироваться на клиенте Linux, а также сохраняется защита для everyone@, размещённой в самом конце, чтобы гарантировать, что остальные разрешения применяются корректно. Это обеспечивает, что только указанные пользователи (root и nobody) могут получить доступ, необходимый для функционирования NFS.

Оптимизация настроек

Вы также отметили, что с ограниченными правами для nobody и group ничего не нарушается:

chmod A=owner@:wpdDxrarRsWwA:df:allow,group:nfs-users:wpdDxrarRsWwA:df:allow,user:nobody:cRarx:allow,group:nobody:cRarx:allow,everyone@:wpdDxrarRsWwA:df:deny /var/pubblica

Такой подход минимизирует нежелательные риски, сохраняя необходимый функционал.

Заключение

Для успешного управления ACL в Solaris ZFS важно следить не только за составом правил, но и за их порядком. Это позволяет достичь необходимого баланса между доступностью и безопасностью, особенно в сетевых средах, где используется NFS.

Эти корректировки и стратегия настройки могут оптимизировать ваш опыт работы с ACL на Solaris, гарантируя, что нужные пользователи имеют доступ, а остальные — надлежащие ограничения.

Оцените материал
Добавить комментарий

Капча загружается...