права разных юзеров на samba шаре

Kaktus

New member
Сообщения
30
#1
Приветствую. Астра Линукс 1.6 SE без обновлений.
Имеем домен, прикрутили самбу на одном из ПК с pam-авторизацией. Монтируется при входе доменным пользователем, права наследуются с сервера (770, пробовали и 777). По умолчанию полный доступ к файлам имеет администратор ПК(astra-admin) и определенная доменная группа доменных пользователей (A и B ).
Тем не менее один раз, по принципу "кто первый" получить доступ к файлам на запись может пользователь скажем А, но как только он внесет изменения в файл, то файл станет принадлежать только А, с правами 600. То есть юзер B даже не сможет посмотреть на общий файл, куда ему потребуется записать после прочтения. Таким образом разрабатываемое СПО работать не может. Подскажите как победить. Чувствуется, что это нормальное поведение с точки зрения дискреционной модели доступа, но возможно с помощью дополнительных аттрибутов как-то сможем выкрутиться?
Сейчас тестируем "setfacl " и lsattr , но пока поведение остается прежним.
 

oko

New member
Сообщения
1 257
#2
Не, это нормальная ситуация именно в Samba - дискреционка самой AstraLinux здесь вряд ли при делах...
Смотрите в сторону параметров inherit acls, inherit permissions, inherit owner и map acl inherit...
Вообще, советую-таки обновления накатить (куммулятивное 10е). Потому что и Samba, и ваше разработанное СПО могут после него себя иначе вести. А эксплуатанты-то должны именно обновленные версии ОС юзать...
 

Kaktus

New member
Сообщения
30
#3
Спасибо.
Проверили локально на одной машине эти ACL назначенные на каталоги, содержащие файлы разных пользователей . Файлы доступны на запись благодаря ACL. Вновь создаваемые файлы приобретают в конце + и видимо наследуют default - значения из директив setfacl -d -m ...
Но к сожалению, теперь столкнулись, что наша доменная группа test_users - не пробрасывается на доменную машину. Там файлам самба-шАры назначается группа Domain Users. При чем даже так : Domain\040 Users..и в итоге ниодин доменный пользователь не может писАть в эту директорию.
Getent group прекрасно показывает доменных юзеров и доменную группу test_users. Похоже inherit не срабатывает...
указал на домене в etc/ald/config-templates/smb.conf -
Bash:
inherit acls =yes

inherit owner =yes

inherit permissions =yes
 

oko

New member
Сообщения
1 257
#4
Но к сожалению, теперь столкнулись, что наша доменная группа test_users - не пробрасывается на доменную машину. Там файлам самба-шАры назначается группа Domain Users
В смысле на выделенной машине с ролью файлопомойки Samba невозможно средствами ОС установить каталогу chown -R root:test_users@имя_домена? Но в то же время getent group на этой машине показывает видимость test_users?
Тогда inherit не при чем. Да и setfacl по-идее тоже...
И все-таки, если сделать chown с нужным именем пользователя из домена на нужный samba-каталог, у пользователя появляются права чтения/записи туда?
 

Kaktus

New member
Сообщения
30
#5
chown отрабатывает, но нужно, чтобы вновь создаваемые юзером А файлы были доступны на запись юзеру B без постоянного вмешательства админа.
юзер A создал файл. Файл создался с правами 600. Требуется чтобы B смог его прочитать и записать в него.
Если на операционке без домена и шары(отвлечемся от стенда) - на выбранный каталог в системе поставить acl для файлов по умолчанию -
Код:
#setfacl -d -m g:test_users:7
то второй пользователь в системе несмотря на 600 user:user на чужих вновь созданных файлах в этом каталоге будет иметь право на запись в них (появляется метка "+" в конце прав). Почему-то на компах с самбой это правило не отрабатывает.
 

oko

New member
Сообщения
1 257
#6
to Kaktus
Samba работает на первом уровне абстракций при доступе к файловой системе - де факто на шару лезет с записью/чтением не ваш юзер, а сервис samba. Для которого все параметры наследования/передачи прав определяются через правила inherit, create mask и проч. А потом уже в игру вступают setfacl-правила...
Попробуйте так в smb.conf ради интереса:
Код:
        writeable = yes
        create mask  = 0770
        directory mask = 0770
        force create mode = 0770
        map acl inherit = yes
        inherit acls = yes
        inherit owner = yes
И, насколько помню, не обязательно этим рулить через /etc/ald/config-templates/smb.conf - это универсальный шаблон для всех samba-share в ALD-домене. Вам же нужна одна конкретная машина, насколько я понимаю, вот и правьте ее smb.conf...
 

Kaktus

New member
Сообщения
30
#7
to Kaktus
Samba работает на первом уровне абстракций при доступе к файловой системе - де факто на шару лезет с записью/чтением не ваш юзер, а сервис samba. Для которого все параметры наследования/передачи прав определяются через правила inherit, create mask и проч. А потом уже в игру вступают setfacl-правила...
Попробуйте так в smb.conf ради интереса:
Код:
        writeable = yes
        create mask  = 0770
        directory mask = 0770
        force create mode = 0770
        map acl inherit = yes
        inherit acls = yes
        inherit owner = yes
И, насколько помню, не обязательно этим рулить через /etc/ald/config-templates/smb.conf - это универсальный шаблон для всех samba-share в ALD-домене. Вам же нужна одна конкретная машина, насколько я понимаю, вот и правьте ее smb.conf...
Код:
writeable = no
был прописан каким-то образом и не давал работать дополнительным правилам ACL. Вопрос решен, setfacl работают.