Ale*_*sar 5 linux active-directory ldap samba winbind
我们有一个 ActiveDirectory,我们可以从中获取用户。因此 Linux 机器上的身份验证通过 pam 进行。
到目前为止,我们已经成功地完成了这部分工作,但我们需要所有用户都成为本地组“users”的一部分。据我所知,这对于组映射是有效的。
我的 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
Run Code Online (Sandbox Code Playgroud)
我使用以下命令创建了组映射:
myserver:~# net groupmap add ntgroup="Domain Users" rid=513 unixgroup=users
Run Code Online (Sandbox Code Playgroud)
组映射如下所示:
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 :
Run Code Online (Sandbox Code Playgroud)
但是当我以 AD 用户身份登录时,我不在用户组中。所有 AD 组均显示正确,并且还显示组“BUILTIN\users”和“BUILTIN\administrator”,但没有组“users”
我也尝试过
myserver:~# net groupmap delete ntgroup="Domain Users"
myserver:~# net groupmap delete ntgroup="Users"
myserver:~# net groupmap add ntgroup="Users" rid=545 unixgroup=users
Run Code Online (Sandbox Code Playgroud)
但这似乎没有效果(smbd重启,winbindd重启执行)。用户仍在“BUILTIN\users”组中,并且没有“users”条目
我想我错过了一些重要的配置步骤,但不知道这可能是什么。非常感谢任何帮助!
我们在 SLES 11 内核 3.0.76 上使用 samba 版本 3.6.3
==编辑== 07.04.2016 15:34
我尝试映射两个非标准组。AD组是grp_Production,本地linux组应该是games
myserver:~# net groupmap add ntgroup="grp_production" rid=20443 unixgroup=games
Run Code Online (Sandbox Code Playgroud)
结果是
myserver:~# net groupmap list -v
..
grp_production (S-1-5-21-1960408961-115176313-682003330-20443) -> games
..
Run Code Online (Sandbox Code Playgroud)
然后我以用户(AD 组 grp_product 的成员)身份登录 Linux 计算机。
myserver:~# groups | grep games
Run Code Online (Sandbox Code Playgroud)
找不到游戏组:-(
==编辑 08.04.2016 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
Run Code Online (Sandbox Code Playgroud)
我“grepped”了“games”和“grp_Production”的所有日志,但没有结果。
它们是众所周知的内置组的 sids - 但我认为如果存在域信任,即有 2 个或更多内置/用户,它们可以被抵消
您可以在 Powershell 中验证 AD 组的 sid
Get-ADGroup -Identity users | select sid
Run Code Online (Sandbox Code Playgroud)
查看 samba 服务器上列出用户是否存在任何问题
net usersidlist
Run Code Online (Sandbox Code Playgroud)
另一件事是 - 用户组是否已经映射到某个东西?
net groupmap list
Run Code Online (Sandbox Code Playgroud)
如果该组已经映射到某个东西,那么您就不会传递rid值,rid用于“添加”组,如果您只是“修改”则删除rid
net groupmap modify ntgroup='Domain Users' unixgroup='users'
Run Code Online (Sandbox Code Playgroud)