Windows Active Directory 域中的 Linux 计算机(Debian),AD 管理员登录后应具有 root 权限

Windows Active Directory 域中的 Linux 计算机(Debian),AD 管理员登录后应具有 root 权限

我设法将我的 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)

我想实现两个目标:

  1. 任何用户创建的目录和文件(包括自动创建的主文件夹)都应具有 gid=100

    此时gid=10000,即为winbind自动获取的gid)

  2. 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 权限(域管理员)。

相关内容