管理双 Samba / Winbind 的 UID/GID 到 AD

Shi*_*i98 4 active-directory samba winbind

我有两台使用 Samba/Winbind 连接到 Active Directory Windows 2008 服务器的 Linux 服务器,这是我的 samba 配置

    workgroup = COMPANY
    realm = COMPANY.COM
    server string = SAMBA-AD Server
    security = ADS
    password server = 10.1.x.x
    log level = 2
    log file = /var/log/samba/log.%m
    max log size = 50
    unix extensions = No
    idmap uid = 10000-20000
    idmap gid = 10000-20000
    template homedir = /home/%u
    template shell = /bin/bash
    winbind separator = +
    winbind enum users = Yes
    winbind enum groups = Yes
    winbind use default domain = Yes
    winbind nss info = rfc2307
Run Code Online (Sandbox Code Playgroud)

两者的配置完全相同,但是,当我运行时getent group,两者列出的 GID 不同,即使范围完全相同(从 10000-20000)。

在Linux服务器A上:

domain computers:*:10011:
Run Code Online (Sandbox Code Playgroud)

在Linux服务器B上:

domain computers:*:10008:
Run Code Online (Sandbox Code Playgroud)

好像不是从10000开始的。

如何在两台 Linux 服务器上准确同步 GID?非常感谢任何帮助!

编辑:@larsks,我尝试添加 idmap_rid 这是最新的配置:

    workgroup = COMPANY
    realm = COMPANY.COM
    server string = SAMBA-AD Server
    security = ADS
    password server = 10.1.xx.xx
    log file = /var/log/samba/log.%m
    max log size = 50
    unix extensions = No
    idmap config COMPANY:backend = rid
    idmap config COMPANY:base_rid = 1000
    idmap config COMPANY:range = 10000 - 20000
    template homedir = /home/%u
    template shell = /bin/bash
    winbind separator = +
    winbind enum users = Yes
    winbind enum groups = Yes
    winbind use default domain = Yes
    winbind nss info = rfc2307
    hosts allow = 127., 192.168.12., 192.168.13., 10.1.11., 10.2.,
    wide links = Yes
Run Code Online (Sandbox Code Playgroud)

我删除了 idmap gid = 10000-20000。

我需要删除吗winbind enum groups = Yes

但是,在添加 idmap_rid 之后,即使我重新启动 winbind / samba,GID 仍然保持不变。

lar*_*sks 5

您可以使用idmap_rid idmap 后端,它通过算法生成 ids,这样就不需要同步它们(也就是说,两个系统将始终为给定组生成相同的 GID)。

您还可以使用LDAP idmap后端将生成的 ID 存储在中央(共享)位置。仅当您不使用后端时才需要这样做idmap_rid