3.9. 设置使用 Windows ACL 的共享
Samba 支持在共享和文件系统对象中设置 Windows ACL。这可让您:
- 使用精细 Windows ACL
- 使用 Windows 管理共享权限和文件系统 ACL
或者,您可以将共享配置为使用 POSIX ACL。详情请参阅 设置使用 POSIX ACL 的 Samba 文件共享。
这个部分的内容基于 Samba Wiki 中发布的 Setting up a Share Using Windows ACLs 文档。许可证: CC BY 4.0。作者和贡献者:请参阅 Wiki 页面上的历史选项卡。
3.9.1. 授予 SeDiskOperatorPrivilege 特权
只有被赋予了 SeDiskOperatorPrivilege
特权的用户和组才能对使用了 Windows ACL 的共享配置权限。
流程
例如,要对
DOMAIN\Domain Admins
组赋予SeDiskOperatorPrivilege
特权:# net rpc rights grant "DOMAIN\Domain Admins" SeDiskOperatorPrivilege -U "DOMAIN\administrator" Enter DOMAIN\administrator's password: Successfully granted rights.
注意在域环境中,对域组赋予
SeDiskOperatorPrivilege
。这可让您通过更新用户的组成员资格来集中管理特权。列出所有被赋予了
SeDiskOperatorPrivilege
的用户和组:# net rpc rights list privileges SeDiskOperatorPrivilege -U "DOMAIN\administrator" Enter administrator's password: SeDiskOperatorPrivilege: BUILTIN\Administrators DOMAIN\Domain Admins
3.9.2. 启用 Windows ACL 支持
要配置支持 Windows ACL 的共享,您必须在 Samba 中启用此功能。
先决条件
- 在 Samba 服务器中配置了一个用户共享。
流程
要全局启用所有共享,请在
/etc/samba/smb.conf
文件的[global]
部分添加以下设置:vfs objects = acl_xattr map acl inherit = yes store dos attributes = yes
或者,您可以通过将相同的参数添加到共享部分来启用对单个共享的 Windows ACL 支持。
重启
smb
服务:# systemctl restart smb
3.9.3. 添加使用 Windows ACL 的共享
您可以创建一个名为 example
的共享,其共享 /srv/samba/example/
目录的内容,并使用 Windows ACL。
流程
如果不存在,请创建文件夹。例如:
# mkdir -p /srv/samba/example/
如果您在
enforcing
模式下运行 SELinux,请在目录中设置samba_share_t
上下文:# semanage fcontext -a -t samba_share_t "/srv/samba/example(/.)?"* # restorecon -Rv /srv/samba/example/
将示例共享添加到
/etc/samba/smb.conf
文件中。例如,添加启用了共享的写操作:[example] path = /srv/samba/example/ read only = no
注意无论文件系统 ACL 是什么;如果您没有设置
read only = no
,Samba 会以只读模式共享该目录。如果您没有在
[global]
部分中对所有共享启用 Windows ACL 支持,那么请在[example]
部分中添加以下参数来为这个共享启用此特性:vfs objects = acl_xattr map acl inherit = yes store dos attributes = yes
验证
/etc/samba/smb.conf
文件:# testparm
打开所需的端口,并使用
firewall-cmd
工具重新加载防火墙配置:# firewall-cmd --permanent --add-service=samba # firewall-cmd --reload
重启
smb
服务:# systemctl restart smb
3.9.4. 管理使用 Windows ACL 的共享的共享权限和文件系统 ACL
要在使用 Windows ACL 的 Samba 共享上管理共享权限和文件系统 ACL,请使用 Windows 应用程序,如 计算机管理
。详情请查看 Windows 文档。或者,使用 smbcacls
工具来管理 ACL。
要从 Windows 修改文件系统权限,您必须使用赋予了 SeDiskOperatorPrivilege
特权的帐户。