Samba/Winbind:根据域组将域用户添加到本地组

Samba/Winbind:根据域组将域用户添加到本地组

我有一台 Redhat ES 6 服务器,该服务器已通过 Winbind 成功加入域(即,我可以使用域凭据登录到 Redhat 服务器,没有任何问题)。

此时,我希望将 Winbind 配置为根据域组自动将用户添加到本地组。例如,假设我在域上的用户名是“DOMAIN\coledot”,我是域组“Arbitrary Group”的成员。在 Redhat 计算机上的 /etc/group 文件中,我定义了本地组“testgrp”:

testgrp:x:10506:

如果我的理解Samba/Winbind 组映射文档是正确的,我应该能够使用以下命令将本地组“testgrp”映射到域组“任意组” net groupmap

net groupmap add ntgroup="Arbitrary Group" unixgroup=testgrp type=d

运行net groupmap list确认映射已创建:

root@host # net groupmap list  
[...]  
Arbitrary Group (S-x-x-xx-xxxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxx) -> testgrp

但是,当我运行该groups命令时,即使我的用户显示为“任意组”组的一部分,也找不到“testgrp”。

我的问题有两个:
1)我的理解net groupmap正确吗?
2)我如何完成我最初的任务(通过域组将域用户映射到本地组)?

答案1

我相信您可以在 /etc/samba/smb.conf 文件中完成此操作。如果您的本地 Linux 权限正确,则可以使用“强制组”字符串来确保您以正确的组成员身份进行连接。人们往往会感到困惑的是,用户可能已经是本地 Linux 组的成员,但就 SMB 而言,您从 Windows“连接”的组才是最重要的。

EXAMPLE:
[someshares]
        path=/path/to/someshares
        writable = yes
        browsable = yes
        valid users = @somegroup
        create mask = 0775
        force create mode = 0775
        directory mask = 0775
        force group = somegroup

答案2

据我所知,从 SMB 组到 Linux 组的映射仅在域控制器上完成。成员服务器自动执行此操作(通过 LDAP 全局执行或通过 idmap 本地执行)。

我刚刚尝试通过 usermod 将 winbind 用户添加到本地组。失败了。也许用户完全由文件或完全由 winbind 管理(参考 nsswitch.conf),但不能同时由两者管理。

如果此方法有效,那么您可以通过“getent group”获取组成员,并将他们添加到本地组。这可以定期执行(如果您无权访问 DC),并且只会在 DC 上创建帐户和首次访问成员服务器(如果此访问在下一次常规检查之前)之间的时间出现问题。

相关内容