У меня есть сервер FreeNAS в сети с клиентами OSX и Windows. Когда клиенты OSX взаимодействуют с общими папками SMB/CIFS на сервере, они вызывают проблемы с разрешениями для всех других клиентов.
Обновление: я больше не могу проверить какие-либо ответы, потому что мы отказались от проекта, но не стесняйтесь размещать любую помощь для будущих посетителей.
Детали этого поведения, похоже, также зависят от версии OSX, на которой работает клиент. Для этого вопроса давайте предположим, что клиент работает с 10.8.2.
Когда я монтирую общий ресурс CIFS на клиенте OSX и создаю на нем новый каталог, он будет создан с drwxr-x-rx
. Это нежелательно, потому что это не позволит никому, кроме меня, писать в каталог. В моей группе есть и другие пользователи, которые также должны иметь права на запись. Такое поведение происходит, даже если в smb.conf
на сервере присутствуют следующие параметры:
[global]
create mask
= 0666
directory mask
= 0777
[share]
force directory mode
= 0775
force create mode
= 0660
У меня сложилось впечатление, что эти настройки должны убедиться, что каталоги по крайней мере созданы с разрешениями rwxrwxr-x
. Но, полагаю, это не мешает клиенту изменять разрешения после создания каталога.
Когда я создаю папку на том же общем ресурсе из клиента Windows, новая папка будет иметь требуемые права доступа (rwxrwxrwx
), поэтому в настоящее время я предполагаю, что проблема заключается в клиенте OSX.
Я думаю, что это не было бы такой проблемой, если бы вы могли легко изменить разрешения созданных вами каталогов, но вы не можете. При открытии информации каталога в Finder я получаю старое уведомление "У вас есть пользовательский доступ" без возможности вносить какие-либо изменения.
Я предполагаю, что это вызвано тем, что мы используем Windows ACL на общем ресурсе, но это только дикое предположение.
Изменение разрешений на запись для группы через терминал работает нормально, но это непрактично для развертывания и нецелесообразно ожидать от кого-либо.
Это полный smb.conf
:
[global]
encrypt passwords = yes
dns proxy = no
strict locking = no
read raw = yes
write raw = yes
oplocks = yes
max xmit = 65535
deadtime = 15
display charset = LOCALE
max log size = 10
syslog only = yes
syslog = 1
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
smb passwd file = /var/etc/private/smbpasswd
private dir = /var/etc/private
getwd cache = yes
guest account = nobody
map to guest = Bad Password
obey pam restrictions = Yes
# NOTE: read smb.conf.
directory name cache size = 0
max protocol = SMB2
netbios name = freenas
workgroup = COMPANY
server string = FreeNAS Server
store dos attributes = yes
hostname lookups = yes
security = user
passdb backend = ldapsam:ldap://ldap.company.local
ldap admin dn = cn=admin,dc=company,dc=local
ldap suffix = dc=company,dc=local
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers
ldap ssl = off
ldap replication sleep = 1000
ldap passwd sync = yes
#ldap debug level = 1
#ldap debug threshold = 1
ldapsam:trusted = yes
idmap uid = 10000-39999
idmap gid = 10000-39999
create mask = 0666
directory mask = 0777
client ntlmv2 auth = yes
dos charset = CP437
unix charset = UTF-8
log level = 1
[share]
path = /mnt/zfs0
printable = no
veto files = /.snap/.windows/.zfs/
writeable = yes
browseable = yes
inherit owner = no
inherit permissions = no
vfs objects = zfsacl
guest ok = no
inherit acls = Yes
map archive = No
map readonly = no
nfs4:mode = special
nfs4:acedup = merge
nfs4:chown = yes
hide dot files
force directory mode = 0775
force create mode = 0660