Ubuntu Xenial 服务器(16.04)上的 Samba 版本 4.3.11
在 smb.conf 中我有:
Server role: ROLE_DOMAIN_MEMBER
[global]
...
inherit permissions = Yes
inherit acls = Yes
# I needed this due to another issue
server max protocol = NT1
max protocol = NT1
protocol = NT1
...
[institute]
...
map acl inherit = Yes
store dos attributes = Yes
vfs objects = acl_xattr
我总是从 Linux 端设置/管理共享。
我已经设置了一个目录的 acl,如下所示:
# getfacl .
# file: .
# owner: rawi
# group: hg_pat
# flags: -s-
user::rwx
group::r-x
group:hg_qm:rwx
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:hg_qm:rwx
default:mask::rwx
default:other::---
现在我在其下面创建一个目录 TEST从 Windows 客户端然后我查看了 acls:
# getfacl TEST
# file: TEST/
# owner: rawi
# group: domain\040users
user::rwx
user:rawi:rwx
group::r-x
group:domain\040users:r-x
group:hg_qm:rwx
mask::rwx
other::---
default:user::rwx
default:user:rawi:rwx
default:group::r-x
default:group:domain\040users:r-x
default:group:hg_qm:rwx
default:mask::rwx
default:other::---
...标准组现在是“域用户”,但并非所有人都应该在这里拥有任何权利,只有组 hg_pat (rx) 和 hg_qm (rwx)。
顺便提一句。有还是没有配置中的以下内容不会对继承产生影响
map acl inherit = Yes
store dos attributes = Yes
vfs objects = acl_xattr
没有只允许一个组的 acls 没有问题:sgid 做得很好。
但是由于需要两个具有不同权限的组,因此需要 acl,samba 会停用 sgid 并将不需要的“域用户”添加为“CREATOR GROUP”。
我怎样才能避免这种群体变化并获得干净的继承?
谢谢
拉威
答案1
添加inherit owner = yes
到 smb.conf 会将您在父文件夹上设置的组所有权保留到 Windows 端创建的所有后续文件夹。您将得到类似以下内容:
# getfacl TEST
# file: TEST/
# owner: rawi
# group: hg_pat
# flags: -s-
user::rwx
group::r-x
group:hg_qm:rwx
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:hg_qm:rwx
default:mask::rwx
default:other::---