Groupmapping 对 AD 组不起作用

Groupmapping 对 AD 组不起作用

我们有一个 ActiveDirectory,可以从中获取用户。因此,Linux 机器上的身份验证通过 pam 进行。

到目前为止,我们已经成功完成了这一部分的工作,但我们需要所有用户都成为本地组“用户”的一部分据我了解,这与组映射有关。

我的 SID 是:

SID for local machine MYSERVER is: S-1-5-21-1487948860-3705201071-3703638889  
SID for domain MYDOMAIN is: S-1-5-21-1960408961-115176313-682003330

我使用以下方法创建了组映射:

myserver:~# net groupmap add ntgroup="Domain Users" rid=513 unixgroup=users

组映射如下所示:

myserver:~# net groupmap list -v

Domain Users
        SID       : S-1-5-21-1487948860-3705201071-3703638889-513
        Unix gid  : 100
        Unix group: users
        Group type: Domain Group
        Comment   : Domain Unix group
Administrators
        SID       : S-1-5-32-544
        Unix gid  : 10029
        Unix group: BUILTIN\administrators
        Group type: Local Group
        Comment   :
Users
        SID       : S-1-5-32-545
        Unix gid  : 12929
        Unix group: BUILTIN\users
        Group type: Local Group
        Comment   :

但是当我以 AD 用户身份登录时,我不在用户组中。所有 AD 组均显示正确,并且显示了“BUILTIN\users”和“BUILTIN\administrator”组,但没有显示“用户”组

我也试过

myserver:~# net groupmap delete ntgroup="Domain Users"
myserver:~# net groupmap delete ntgroup="Users"
myserver:~# net groupmap add ntgroup="Users" rid=545 unixgroup=users

但这似乎没有效果(smbd restart、winbindd restart 已执行)。用户仍在“BUILTIN\users”组中,并且没有“用户”条目

我想我错过了一些重要的配置步骤,但不知道这可能是什么。任何帮助都非常感谢!

我们在 SLES 11 内核 3.0.76 上使用 samba 版本 3.6.3

==编辑== 2016 年 4 月 7 日 15:34

我尝试映射两个非标准组。AD 组是 grp_production,本地 Linux 组应该是 games

myserver:~# net groupmap add ntgroup="grp_production" rid=20443 unixgroup=games

结果是

myserver:~# net groupmap list -v
..
grp_production (S-1-5-21-1960408961-115176313-682003330-20443) -> games
..

然后我以用户(AD 组 grp_production 的成员)的身份登录 Linux 机器。

myserver:~# groups | grep games

未找到游戏组 :-(

==编辑于 2016 年 4 月 8 日 07:39==
我在日志中发现的唯一错误是在 /var/log/samba/log.winbindd-idmap

[2016/04/07 13:54:25.146170,  1] ../librpc/ndr/ndr.c:284(ndr_print_function_debug)
       wbint_Sid2Gid: struct wbint_Sid2Gid
          in: struct wbint_Sid2Gid
              dom_name                 : NULL
              sid                      : *
                  sid                      : S-1-5-21-1960408961-115176313-682003330-28693
[2016/04/07 13:54:25.146221, 10] winbindd/idmap_util.c:234(idmap_sid_to_gid)
  idmap_sid_to_gid: sid = [S-1-5-21-1960408961-115176313-682003330-28693], domain = ''
[2016/04/07 13:54:25.146247, 10] winbindd/idmap.c:507(idmap_backends_sid_to_unixid)
  idmap_backends_sid_to_unixid: domain = '', sid = [S-1-5-21-1960408961-115176313-682003330-28693]
[2016/04/07 13:54:25.146267, 10] winbindd/idmap.c:376(idmap_find_domain)
  idmap_find_domain called for domain ''
[2016/04/07 13:54:25.146290,  1] winbindd/idmap.c:209(idmap_init_domain)
  invalid range '100' specified for domain '*'
[2016/04/07 13:54:25.146308, 10] winbindd/idmap_util.c:260(idmap_sid_to_gid)
  idmap_backends_sid_to_unixid failed: NT_STATUS_NONE_MAPPED
[2016/04/07 13:54:25.146330, 10] lib/gencache.c:183(gencache_set_data_blob)
  Adding cache entry with key = IDMAP/SID2GID/S-1-5-21-1960408961-115176313-682003330-28693 and timeout = Thu Apr  7 13:56:25 2016

我搜索了“games”和“grp_production”的所有日志,但没有结果。

答案1

它们是内置组的众所周知的 sid - 但我认为,如果存在域信任,它们可以被抵消,即存在 2 个或更多内置/用户

你能在 Powershell 中验证 AD 组的 sid 吗

Get-ADGroup -Identity users | select sid

查看 samba 服务器上列出用户是否存在问题

net usersidlist

另一件事是 - 用户组是否已经映射到某个东西?

net groupmap list

如果该组已经映射到某个东西,那么您就不需要传递 rid 值,rid 用于“添加”组,如果您只是“修改”,则删除 rid

 net groupmap modify ntgroup='Domain Users' unixgroup='users'

答案2

您的net groupmap add命令将本地计算机的 SID 前缀添加到您的 RID,因此它实际上映射了本地计算机的“域用户”组,这没有任何意义。

通过指定适当的选项告诉net命令你的 RID 引用域type

net groupmap add ntgroup="Domain Users" rid=513 type=domain unixgroup=users

或者指定完整的 SID:

net groupmap add ntgroup="Domain Users" sid=S-1-5-21-1960408961-115176313-513 unixgroup=users

您可能必须先删除错误的映射。

相关内容