Как установить разрешение на запись с Samba?

Я искал около 6 часов, пытаясь настроить сервер samba (версия 4.6.7), но застрял там, где мои пользователи не могут создавать файлы с разрешениями -rw-rw----.

Во-первых, позвольте мне объяснить мою конечную цель ( может быть, есть более простые решения, чем то, над чем я сейчас работаю, если так, скажите мне ): я хочу иметь 1 общий ресурс, который доступен без аутентификации, 1 общий доступ доступен только пользователю "foo", а 1 общий доступ доступен только пользователю "bar".

Вот что я сделал до сих пор: я создал пользователей UNIX "main", "foo" и "bar", и все они в группе UNIX "smbusers". Я также добавил пользователя "nobody" в группу "smbusers". Затем я создал ресурсы в /tmp/testshare со следующими разрешениями:

> ls -la /tmp/testshare
drwxrws---  5 main smbusers 4096 Dec 24 17:29 .
drwxrwxrwt 12 root root     4096 Dec 24 17:28 ..
drwxrws---  2 main smbusers 4096 Dec 24 17:29 bar
drwxrws---  2 main smbusers 4096 Dec 24 17:29 foo
drwxrws---  2 main smbusers 4096 Dec 24 17:28 Public

Вот мои конфиги в smb.conf:

[global]
    server string = %h server (Samba, Ubuntu)
    server role = standalone server
    os level = 20
    workgroup = WORKGROUP
    writeable = yes
    security = user
    map to guest = bad password
    force user = main
    force group = smbusers
    create mask = 0660
    force create mode = 0660
    directory mask = 0770
    force directory mode = 0770
    encrypt passwords = yes
    unix password sync = yes
    passdb backend = tdbsam
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    passwd program = /usr/bin/passwd %u
    pam password change = yes
    obey pam restrictions = yes
    panic action = /usr/share/samba/panic-action %d
    max log size = 1000
    log file = /var/log/samba/log.%m
    dns proxy = no
    socket options = TCP_NODELAY

[Public]
    path = /tmp/testshare/public
    guest ok = yes

[bar]
    path = /tmp/testshare/bar
    valid users = bar

[foo]
    path = /tmp/testshare/foo
    valid users = foo

ОБНОВЛЕНИЕ : сейчас из Windows, если я создаю файлы в качестве гостя (так называемый "nobody: nogroup"), файлам присваиваются правильные разрешения, как я их установил, но как только я подключаюсь к любой учетной записи, "foo" или "bar" , он отказывается устанавливать права на запись для группы (или даже для кого-либо, как я пытался позже с create mask = 0222):

#I created these two without authenticating myself
> ls -lA /tmp/testshare/public
-rw-rw---- 1 main smbusers    0 Dec 24 19:43 New Text Document.txt
drwxrwx--- 2 main smbusers 4096 Dec 24 19:43 New Folder

#I created these two after I succesfully authenticated myself as "foo".
> ls -lA /tmp/testshare/public
-rw-r----- 1 main smbusers    0 Dec 24 19:43 New Text Document.txt
drwxr-x--- 2 main smbusers 4096 Dec 24 19:43 New Folder

Как вы можете видеть, как только я аутентифицировался, он отказывается дать разрешение на запись для группы, поэтому я не могу редактировать файлы из Windows.

Что мне нужно изменить, чтобы заставить его работать как положено? Я подозреваю, что учетные записи настроены неправильно, но я не вижу, что я делаю неправильно.

Примечание: я должен также упомянуть, что папка testshare, которую я использовал для своих тестов, находится на диске, на котором работает мой Ubuntu Server 17.10 , и моя реальная установка будет использовать внешний диск, смонтированный в NTFS-3g.

ОБНОВЛЕНИЕ2 : я попробовал ту же самую настройку на моем внешнем диске, установленном в ntfs-3g, и все работает как ожидалось. Хотя мне все еще любопытно узнать, почему он не работал в моей папке /tmp/testshare ...

0
задан 25 December 2017 в 08:37

0 ответов

Другие вопросы по тегам:

Похожие вопросы: