Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > samba и acl наследование прав доступа


Автор: Хоббит 5.6.2010, 13:01
Debian 5.0, Samba, Acl

Есть структура директорий.
/var/project/... и.т.д.

Все начиная от project имеет владельца project:project и права директории 770, файлы 660.

Где то в глубине этой структуры есть директория share к которой надо дать доступ разным пользователям (например user) через samba. При этом группу менять нельзя и user этой группе не принадлежит.

При создании директорий в папке share они должны иметь права 770, файлы в них 660 и быть также доступны для user.

Используем acl.

Делаем chmod g+s share ... чтобы создаваемые файлы и папки имели группу project
Делаем setfacl -m u:user:rx для все директорий до share  ... для того, чтобы user мог дойти до этой директории
Делаем setfacl -m u:user:rwx для директории share и всех ее поддиректорий... для того, чтобы пользователь мог что-то создавать в этой директории
Делаем setfacl -m u:user:rw для всех подфайлов директории share

В samba пишем

directory mask = 770
create mask = 660 
inherit acls = yes
inherit permissions = yes # без этого предыдущая строка не работает!!!
map acl inherit = yes
map archive = no
map system = no
map hidden = no

После пробуем создать папку и файл в директории share через samba из под user.

Получаем
Папку с правами 770 и владельцем user:project (все как и надо)
и Файл с правами 670 и владельцем user:project

Вопрос откуда взялось право на выполнение для группы?
По идее inherit permissions заставляет наследовать права от родительской папки (у которой они 770), но для файлов правом на выполнение управляют флаги map archive, map system, map hidden. Но они все установлены в no.

Убрать sgid с share тоже не помогает. Это влияет только на группу владельца, а право на выполнение группы для файлов остается.

Что не так. Как можно добиться моей цели. И почему inherict acls не работает без inherit permissions?

Автор: Хоббит 5.6.2010, 14:20
Дополнение.

Можно поставить на папку share default права.

setfacl -m d:u:user:rwx share

Тогда acl права наследуются не зависимо от того стоит ли inherit acls или нет.

Но проблема с правом запуском для группы у файлов не пропала.

Автор: mihanik 7.6.2010, 15:56
А если это дело скрестить с виндовой AD и права раздавать на шару в соответствии с виндовыми пользователями?
 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)