我设法将我的 Debian 机器 (Squeeze) 连接到现有的 Active Directory (MS Windows 2008 R2 Server)。一切正常,我可以使用 Active Directory 中的帐户登录(NTP、Kerberos、PAM、Samba 和 Winbind 都已配置,似乎运行良好)。
问题:我想要将 Active Directory 组映射到 UNIX 组,如下所示
- 域管理员 (RID 512) -> root (gid 0)
- 域用户 (RID 513) -> 用户 (gid 100)
我想实现两个目标:
任何用户创建的目录和文件(包括自动创建的主文件夹)都应具有 gid=100
此时gid=10000,即为winbind自动获取的gid)
Domain-Admins 组的成员登录后应具有 root 权限(或者:成为 wheel 组的成员)
目前,Domain-Admins 组的成员既不是 gid=0 的成员,也不是 wheel 组的成员(它不存在于我的 Debian 安装中,但这是另一个问题)。
为了实现这些目标,我尝试设置以下映射
- net groupmap add ntgroup="Domänen-Admins" unixgroup=root rid=512 type=domain
- net groupmap add ntgroup="域用户" unixgroup=users rid=513 type=domain
这种方法没有成功,提供 SID 而不是 RID 都无济于事。对于每种方法,我都确保 winbind 缓存为空(网络缓存刷新),并且 samba 和 winbind 服务都已重新启动。
有什么建议吗?非常感谢您的支持!(我知道有些 Debian 专家已经解决了这种情况 ;-) )
问候,Wolfram
此外,用户 syneticon-dj 还要求提供一些信息:
SID 被篡改
root@S15:~# net getdomainsid
SID for local machine S15 is: S-1-5-21-aaaaaaaaaa-bbbbbbbbbb-ccccccccc
SID for domain ITSL is: S-1-5-21-dddddddddd-eeeeeeeeee-ffffffffff
root@S15:~# net groupmap add ntgroup="Domänen-Admins" unixgroup=root rid=512 type=domain
Successfully added group Domänen-Admins to the mapping db as a domain group
root@S15:~# net groupmap add ntgroup="Domänen-Benutzer" unixgroup=users rid=513 type=domain
Successfully added group Domänen-Benutzer to the mapping db as a domain group
root@S15:~# net groupmap list
Domänen-Admins (S-1-5-21-aaaaaaaaaa-bbbbbbbbbb-ccccccccc-512) -> root
Domänen-Benutzer (S-1-5-21-aaaaaaaaaa-bbbbbbbbbb-ccccccccc-513) -> users
对我来说,似乎映射了错误的组帐户。我的意思是映射的 SID 对应于本地计算机 SID,而不是域 SID。无论如何,它不起作用,即目标 #1 没有实现。
我没有找到任何强制选择域 SID 的选项。因此,我清除了组映射并直接添加了组 SID 的映射,如下所示:
root@S15:~# net groupmap add ntgroup="Domänen-Benutzer" unixgroup=users sid="S-1-5-21-dddddddddd-eeeeeeeeee-ffffffffff-513" type=domain
Successfully added group Domänen-Benutzer to the mapping db as a domain group
root@S15:~# net groupmap list
Domänen-Benutzer (S-1-5-21-dddddddddd-eeeeeeeeee-ffffffffff-513) -> users
这种方法也不起作用,即目标#1没有实现。
根据要求,以下是摘录自smb配置文件:
[global]
workgroup = ITSL
realm = itsl.local
security = ADS
# This machine is a member server, hence no authentication and we leave the following line commented
; domain logons = yes
idmap uid = 10000-20000
idmap gid = 10000-20000
template shell = /bin/bash
; winbind enum groups = yes
; winbind enum users = yes
winbind use default domain = yes
根据要求,以下是摘录自PAM 配置:
Debian Squeeze 默认设置,我没有做任何更改。
root@S15:/etc/pam.d# grep 'winbind' *
common-account:account [success=1 new_authtok_reqd=done default=ignore] pam_winbind.so
common-auth:auth [success=1 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
common-password:password [success=1 default=ignore] pam_winbind.so use_authtok try_first_pass
common-session:session optional pam_winbind.so
common-session-noninteractive:session optional pam_winbind.so
问候,Wolfram
答案1
您不应该尝试将映射uid
到根,也不应该以gid
这种方式映射。
如果要授予管理员系统上的 root 权限,则可以使用 sudo。您可以使用 Windows 组授予 sudo 权限(域管理员)。