Samba 域成员未提取 AD 组/用户信息

Samba 域成员未提取 AD 组/用户信息

我们正在从旧的 NT4 域升级,我刚刚在新的 Ubuntu 20.04 服务器上设置了 Samba AD。DC 和域成员服务器上的当前 Samba 版本都是 4.11.6-Ubuntu,域成员服务器也运行着 Ubuntu 20.04。我遵循了 Samba 官方指南(同时替换发行版目录),我可以kinit正常使用,我可以wbinfo -a正常运行并且它会进行身份验证,但如果我运行,getent passwd DOMAIN\\USER则不会得到任何输出,我已在文件中启用winbind enum users = yes并启用,但仍然什么都没有。有趣的是,&返回了我所有的用户和组。winbind enum groups = yes/etc/samba/smb.confwbinfo -uwbinfo -g

我也尝试过getent group,它返回了我的部分组(似乎在 gid 2300 以上),但getent user无论我为任何测试用户分配什么 ID,它都只返回本地用户。

我还确保了我在 DC 上的配置也设置好了,并且我可以使用我在成员服务器上尝试过的参数运行 getent 命令,而且它可以工作,它会提取 ID 和所有内容。

另外,需要注意的是,我使用 samba-tool 手动从旧域中提取所有用户和组(包括 uid/gid),并使用适当的参数添加它们。我们的 UID 范围是 1004-4000,gid 范围是 900-950。

我的想法是它与 idmap 范围有关,/etc/samba/smb.conf但无论我放在那里什么都不起作用(是的,我也一直在重新启动/重新加载/重新启动服务)。我也无法登录,即使我已确认 PAM 配置为使用 winbind 并且我的/etc/nsswitch.conf文件设置正确(用户和组已附加 winbind)

所以最终,我的问题归结为:Ubuntu 20.04 是否有任何变化,我需要调整才能使 Samba 正常工作?或者,我只是做错了什么?(下面的配置)

DC SMB 配置文件

# Global parameters
[global]
        dns forwarder = 192.168.1.1
        netbios name = DC1
        realm = DOMAIN.COM
        server role = active directory domain controller
        workgroup = DOMAIN
        idmap_ldb:use rfc2307 = yes

# Template settings for login shell and home directory
        template shell = /bin/false
        template homedir = /home/%U

        winbind enum users = yes
        winbind enum groups = yes

成员服务器SMB.conf

[global]
   workgroup = DOMAIN
   security = ADS
   realm = DOMAIN.COM
   username map = /etc/samba/user.map

   log file = /var/log/samba/%m.log
   log level = 1

# Default ID mapping configuration for local BUILTIN accounts
# and groups on a domain member. The default (*) domain:
# - must not overlap with any domain ID mapping configuration!
# - must use a read-write-enabled back end, such as tdb.
   idmap config * : backend = tdb
   idmap config * : range = 10000-17999
# - You must set a DOMAIN backend configuration
# idmap config for the DOMAIN domain
   idmap config DOMAIN : backend = ad
   idmap config DOMAIN : schema_mode = rfc2307
   idmap config DOMAIN : range = 1000-5000
   idmap config DOMAIN : unix_nss_info = yes

   vfs objects = acl_xattr
   map acl inherit = yes
   store dos attributes = yes
   dedicated keytab file = /etc/krb5.keytab
   kerberos method = secrets and keytab

   winbind enum users = yes
   winbind enum groups = yes

nsswitch.conf

passwd:         files systemd winbind
group:          files systemd winbind
shadow:         files
gshadow:        files

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

成员服务器 KRB5 会议

[libdefaults]
        default_realm = DOMAIN.COM
        dns_lookup_realm = false
        dns_lookup_kdc = true

答案1

感谢@Rowland 的帮助,我得出结论,这个问题源于多个问题:

主要是域用户不是有一个 gid(通过检查 Windows 用户和组控制台中的属性来确认)。添加该 gid 并扩展 idmap 范围后,我的问题似乎已解决,所有组和用户都已显示。我还能够成功测试域用户的访问权限。

编辑:我现在已经扩展到包括我们所有的组,并且与用户/组和 ACL 相关的一切都运行良好!

相关内容