尝试使用 Samba 扩展 ACL(https://wiki.samba.org/index.php/Shares_with_Windows_ACLs)基于 AD 权限,但不要似乎在 Windows 10 机器上安装这些共享时,这些共享可以工作/应用于我们的 CentOS7 服务器上的共享。也就是说,似乎没有应用任何限制。
即使将自己从 Samba 共享的安全选项卡中列出的各种 AD 组/CN 中删除,这些组/CN 表面上已应用扩展的 ACL 功能(通过计算机管理 UI (根据文档)), 我通过 Windows 文件资源管理器安装网络驱动器时,尽管不属于任何允许的 AD 安全组,仍可以安装并查看其内容。
/etc/samba/smb.conf
与扩展 ACL 相关的设置出现根据文档中的扩展 ACL 功能进行设置(以及类似的问题这里)...
更大的 smb.conf 片段(除各种共享之外的所有内容):
[root@myserver ~]# cat /etc/samba/smb.conf
[global]
security = ads
# password server = adcontrollerserver.myorg.local
# dedicated keytab file = /etc/krb5.keytab
encrypt passwords = yes
log file = /var/log/samba/%m.log
log level = 3
winbind refresh tickets = yes
vfs objects = acl_xattr
map acl inherit = Yes
# the next line is only required on Samba versions less than 4.9.0
# store dos attributes = Yes
winbind use default domain = yes
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
idmap config * : backend = tdb
idmap config * : range = 10000000-10999999
idmap config MYDOMAIN : backend = ad
idmap config MYDOMAIN : schema_mode = rfc2307
idmap config MYDOMAIN : range = 10000-20000
idmap config MYDOMAIN : unix_nss_info = yes
# idmap config MYDOMAIN : unix_primary_group = no
username map = /usr/local/samba/etc/user.map
winbind enum users = yes
winbind enum groups = yes
# Template settings for login shell and home directory
template shell = /bin/bash
template homedir = /home/%U
kerberos method = system keytab
workgroup = MYDOMAIN
realm = MYDOMAIN.LOCAL
winbind offline logon = yes
.
.
.
(按照https://www.samba.org/samba/docs/current/man-html/idmap_ad.8.html)
在计算机管理 UI 中编辑共享的安全 AD ACL 确实会流回主机。也就是说,当以 AD 链接用户身份注销并重新登录服务器并运行
[myaduser@myserver ~]# groups
我可以看到那里的组发生了变化,并且根据 ACL 的配置方式,访问是否受到限制(请注意,如果您以 root 身份登录,则此功能不起作用su myaduser
(每次都需要进行身份验证))。但是,即使此功能在 samba 服务器本身上运行良好,在本地笔记本电脑或网络上的其他 Windows 桌面上安装共享时,它似乎也能正常运行。
有人知道这里发生了什么吗?我遗漏了什么吗?还有其他有用的信息吗?
答案1
文件 ACL 控制访问共享内的文件。它们始终适用,无论使用哪个共享来访问文件(您可以设置共享,以便可以通过不同的路径访问同一个文件);如果使用 POSIX ACL 映射作为 VFS 方法,这些 ACL 甚至适用于本地用户(即即使在没有 Samba 的情况下访问文件)。
访问分享本身valid users
由 smb.conf 中的、invalid users
、write list
和admin users
类似的每个共享选项控制(或它们的 Samba 注册表对应项,man smb.conf
有关详细信息,请参阅)。这是另一个访问设置,独立于文件 ACL。此设置中允许的用户可以连接到共享(例如,安装它),但由于文件 ACL,不一定能够访问文件。这对应于 Windows 中的共享安全选项卡,您可以在其中设置允许谁连接到共享。