Nas4Free ZFS and ACL

Материал из Записки на полях
Перейти к навигации Перейти к поиску

Сначала user case - хочу иметь доступ к определённому каталогу в Nextcloud по SMB.

Идём в web-interface Nas4free и в нём - Диски -> ZFS -> Dataset, где редактируем требуемый датасет. Из необходимого - выставляем в Passthrough "Наследование ACL" и "Режим ACL". Сохранить и применить.

Далее в консольку ))) Можно и из вэбморды, но это не мой путь!

 setfacl -m u:ftp:rwxp--aARWcCos:fd:allow,u:www-data:rwxp--aARWcCos:fd:allow /DIR

Что же делает данная команда?! Она модифицирует (ключ -m) ACL права на каталог DIR. Для пользователей ftp и www-data задаются права rwxp--aARWcCos, за расшифровкой отправлю в MAN, и собственно ключики f (для файлов) и d (для каталогов) задают наследование прав, что описано в том же мане.

По поводу пользователей, почему их 2?! Samba работает от имени пользователя ftp с минимальными правами в системе, а nextcloud работает с каталогом по NFS от имени пользователя www-data. При создании файла/каталога в nextcloud owner будет www-data, а при создании через samba - ftp. Для того, чтобы доступ не ломался был прописан доступ для двух пользователей.

Ну и для рекурсивного назначения прав:

find /DIR -type d -exec setfacl -m u:ftp:full_set:fd:allow {} \;
find /DIR -type f -exec setfacl -m u:ftp:full_set:allow {} \;

Обращаю внимание, что для файлов ключи f и d не указываются, т.к. иначе получите ошибки.