Я искал около 6 часов, пытаясь настроить сервер samba (версия 4.6.7), но я застрял там, где у меня нет возможности создавать файлы с разрешениями -rw-rw----.
Во-первых, позвольте мне объяснить свою конечную цель (возможно, есть более простые решения, чем то, над чем я сейчас работаю, если так скажите): я хочу иметь 1 ресурс, доступный без аутентификации, 1 доступный только для пользователя » foo "и 1 share доступны только пользователю" bar ".
Вот что я сделал до сих пор: я создал пользователей UNIX« main »,« foo »и« bar », и они все в группе UNIX «smbusers». Я также добавил пользователя «никто» в группу «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.
Что мне нужно изменить, чтобы он работал так, как ожидалось? Я подозреваю, что учетные записи настроены неправильно, но я не вижу, что я делаю неправильно. : Я пробовал ту же настройку на своем внешнем накопителе, установленном в ntfs-3g, и все работает так, как ожидалось. Хотя мне все еще интересно узнать, почему он не работал в моей папке /tmp/testshare ...