Назад | Перейти на главную страницу

Samba4 создает файлы как исполняемые, если в родительском каталоге есть POSIX ACL по умолчанию.

У меня есть файловый сервер Samba 4.5.12, работающий на Debian Stretch, с файловым ресурсом, настроенным следующим образом:

[test]
    path = /srv/test
    read only = no

Внутри этого общего ресурса есть каталог: /srv/test/directory. Затем, используя клиент Windows, я создаю файл test.txt и после создания он имеет следующие разрешения:

# file: test.txt
# owner: some_user
# group: some_group
user::rw-
group::r--
other::r--

Затем на файловом сервере я установил ACL по умолчанию для /srv/test/directory каталог:

setfacl -d -m group:some_other_group:rwx /srv/test/directory
touch /srv/test/directory/test2.txt

test2.txt файл имеет разрешения, как и ожидалось:

# file: test2.txt
# owner: some_user
# group: some_group
user::rw-
group::r-x                      #effective:r--
group:some_other_group:rwx      #effective:rw-
mask::rw-
other::r--

Когда я перехожу к созданию другого файла с помощью клиента Windows, я получаю следующее:

# file: test3.txt
# owner: some_user
# group: some_group
user::rw-
group::r--
group:some_other_group:rwx
mask::rwx
other::r--

Как видите, маска неправильная. Как я могу это исправить?

Я пробовал установить create mask = 0666 но это тоже не помогло. Единственное, что помогает, это отключение поддержки NT ACL через nt acl support = no но я не хочу этого делать.

Полный smb.conf как следует:

[global]
        server role = member server
        security = ADS
        workgroup = *redacted*
        realm = *redacted*
        netbios name = FILES

        kerberos method = secrets and keytab

        acl allow execute always = yes
        map to guest = bad user

        store dos attributes = yes
        map readonly = no
        map archive = no
        map hidden = no
        map system = no

[test]
        path = /srv/test
        read only = no