Я запускаю Samba 4.6 на FreeBSD 11 с ZFS. Каждый пользователь принадлежит к группа файловых серверов. Кроме того, для каждого отдела есть дополнительные группы, например группа продаж.
И вот моя проблема. На сервере есть папка с названием продажи. Который принадлежит файловому серверу и группе продаж. Почему члены моей группы из отдела продаж не могут перезаписывать файлы через Windows внутри этой папки. Используя доступ к оболочке, редактирование работает без проблем.
Под Windows появляется сообщение Доступ к целевой папке запрещен когда я пытаюсь перезаписать файл. Новые файлы могут быть без проблем созданы внутри папки продаж. Переименование тоже работает
folder sales
chmod 770 sales
chown fileserver:sales
# file: sales
# owner: fileserver
# group: sales
owner@:rwxp--aARWcCos:-------:allow
group@:rwxp--a-R-c--s:-------:allow
everyone@:r-x---a-R-c--s:-------:allow
Внутри папки продаж находится файл test.txt
chmod 770 test.txt
chown fileserver:sales
# file: test.txt
# owner: fileserver
# group: sales
owner@:rwxp--aARWcCos:-------:allow
group@:rwxp--a-R-c--s:-------:allow
everyone@:------a-R-c--s:-------:allow
Изменение папки permissin на продажи chmod 2770 также не влияет
Только если я дам файлу те же права ACL, что и владелец, сохранение работает. Это почему? Я сделал неправильную настройку? Права доступа группы rwx должен перекрывать права ACL? Нет?
smb4.conf
[global]
# Logging
log level = 3
log file = /var/log/samba4/log.%m
max log size = 50
utmp = 0
# Domain & controller & workgroups
server string = NAS Server
workgroup = COMPANY
server string = NAS
netbios name = NAS
# Network restriction
bind interfaces only = yes
interfaces = lo0 igb0
# Security model
security = user
encrypt passwords = true
map to guest = bad user
# Time server
time server = yes
map hidden = no
map system = no
map archive = no
map readonly = no
store dos attributes = yes
ea support = yes
access based share enum = yes
load printers = no
template homedir = /fileserver/users/%U
allow insecure wide links = yes
[data]
comment = Data
path = /fileserver/data
valid users = +fileserver
browsable = yes
writable = yes
read only = no
guest ok = no
public = no
follow symlinks = yes
wide links = yes
create mask = 0770
force create mode = 0760
directory mask = 2770
force directory mode = 2770
hide unreadable = yes
vfs objects = shadow_copy2 zfsacl recycle crossrename
shadow: snapdir = .zfs/snapshot
shadow: sort = desc
shadow: format = %Y-%m-%d-%H%M
recycle:directory_mode = 0750
recycle:subdir_mode = 0750
recycle:exclude = *.tmp *.temp *.swp
recycle:keeptree = yes
recycle:repository = Trash/%U
recycle:versions = yes
recycle:touch = yes
recycle:touch_mtime = yes
nfs4:mode = special
nfs4:acedup = merge
nfs4:chown = yes
crossrename:sizelimit = 50
Итак, вы ожидаете, что доступ для чтения и записи будет работать без delete
, delete_child
и write_owner
? Это просто неправильно, вы находитесь не в устаревшей системе разрешений 3x3 POSIX, а в списках ACL NFSv4. Они не дополнительный до POSIX 3x3 они нормализованы. В основном вам нужен full_set
ACL, вам нужен более детальный контроль, вам нужно поэкспериментировать.
И не забывайте, что вам также понадобится aclmode
и aclinherit
установлен в passthrough
в этом наборе данных.