You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

CentOS 7加入Active Directory域后自动组配置问题咨询

解决CentOS 7.4加入AD域后getent group无法获取用户对应组的问题

你已经完成了AD域的基础接入,SSSD也能正常运行,但因为AD里没给每个用户创建对应组,只配置了POSIX属性,导致getent group拿不到用户对应的组信息。我给你几个针对性的调整方案:

1. 调整SSSD配置,映射用户POSIX GID为虚拟组

编辑/etc/sssd/sssd.conf里你的AD域配置段(比如[domain/your-domain.com]),添加或修改以下参数:

# 指定用用户的gidNumber字段作为主组标识
ldap_user_primary_group = gidNumber
# 适配AD的POSIX属性,配置组成员的映射规则
ldap_group_member = memberUid
# 可选:当用户gidNumber缺失时的兜底默认GID,根据你的环境设置数值
override_gid = 5000
# 关闭嵌套组,避免无组对象场景下的查询冲突
ldap_enable_nested_groups = false

修改完一定要修正配置文件权限(SSSD对权限要求严格,否则服务无法启动):

chmod 600 /etc/sssd/sssd.conf

2. 重启SSSD并清除缓存

配置生效需要重启服务,同时清除旧缓存避免干扰:

systemctl restart sssd
sss_cache -E

3. 确认NSS配置包含SSSD

检查/etc/nsswitch.conf里的group配置行,确保包含sss,这样系统才会通过SSSD查询AD的组信息:

group: files sss

4. 测试验证

现在可以用两种方式验证效果:

  • 直接查询用户对应的GID:getent group <用户的gidNumber>(比如getent group 10001
  • 查询用户的完整组信息:id <AD用户名>,看输出里的组信息是否正常显示

原理说明:因为AD中没有创建与用户gidNumber对应的组对象,SSSD会通过配置的规则,将用户的POSIX gidNumber映射为一个虚拟组条目,这样getent group就能识别并返回对应的组信息了。


内容的提问来源于stack exchange,提问作者doneal24

火山引擎 最新活动