You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用realmd将Linux主机加入AD域后无法在命令行修改AD用户密码

故障根因归类

  1. SSSD配置缺失:当前sssd.conf中未明确指定密码修改提供方,SSSD默认不会将密码修改请求转发到AD域控
  2. PAM规则异常:/etc/pam.d/passwd中pam_sss规则缺失或顺序错误,导致优先调用pam_unix模块查询本地用户数据库,触发日志中用户不存在于/etc/passwd的报错
  3. AD侧权限/策略限制:域密码策略不允许当前修改操作、主机账号无修改用户密码的委托权限、用户属于AD受保护组禁止非Windows设备改密码
  4. Kerberos配置错误:/etc/krb5.conf中域控地址、realm配置错误,导致密码修改请求无法送达AD服务器

排查步骤

  • 修复SSSD配置
    在/etc/sssd/sssd.conf的[domain/domain.example.com]段添加以下参数:
chpass_provider = ad
krb5_passwd_protocol = MS-KKDCP
ad_gpo_access_control = permissive

修改完成后执行以下命令生效:

systemctl restart sssd
sss_cache -E

重启后测试密码修改操作。

  • 校验PAM配置
    查看/etc/pam.d/passwd文件,确保存在以下pam_sss规则,且优先级高于pam_unix的密码修改规则:
password    sufficient    pam_sss.so use_authtok

若手动配置容易出错,可执行authconfig --enablesssd --enablesssdauth --update自动生成符合规范的PAM规则。

  • 排除AD侧限制
  1. 先在Windows域控侧测试该用户能否正常修改密码,排除密码复杂度、最短使用期限、密码历史等域策略限制
  2. 检查AD中对应Linux主机的计算机账号权限,确认已授予修改域用户密码的委托权限
  3. 确认修改的用户未加入AD的「受保护的用户」安全组,该组成员默认禁止在非Windows设备上修改密码
  • 细化日志排查
    在sssd.conf的[sssd]段添加debug_level = 9,重启sssd服务后复现改密码操作,查看/var/log/sssd/sssd_domain.example.com.log中的详细报错,可精确定位请求失败的具体环节。

  • Kerberos连通性测试
    直接执行kpasswd username.lin@DOMAIN.EXAMPLE.COM测试密码修改,如果该命令同样报错,可直接定位为Kerberos配置或AD侧问题,无需再排查SSSD和PAM配置。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:06:02