ldap 用户的密码

ldap 用户的密码

我正在尝试让 Linux 主机使用端口 389 和 tls 针对 Active Directory 服务器进行身份验证。我似乎做了很多工作,但用户无法通过 passwd 更改密码。

我以为在更改密码时,它会绑定用户名和旧密码,而不是 ldap.conf 中的 binddn/bindpw,但我可能错了。如果是这样,我该如何让它工作,因为 test\ldap 域用户没有更改其他用户密码的权限,我不想给它这个权限,因为这个配置文件将存在于每个客户端上。

这是在 rhel5 上(如果我能让它工作,那么 rhel4 上也可以)

这是我在客户端上的配置文件:

/etc/hosts
127.0.0.1 本地主机
192.168.0.2 TESTSRV.TEST.COM TESTSRV
192.168.0.1 WIN-JERS4CCKFGM.TEST.COM WIN-JERS4CCKFGM

/etc/ldap.conf

调试 0

uri ldap://WIN-JERS4CCKFGM.TEST.COM/ 基本 cn=用户,dc=测试,dc=com ldap_version 3

binddn TEST\ldap bindpw Pwldap1 bind_policy 软

范围子 时限 30

nss_base_passwd cn=用户,dc=测试,dc=com?一 nss_base_shadow cn=用户,dc=测试,dc=com?一 nss_base_group cn=用户,dc=测试,dc=com?sub nss_schema rfc2307bis nss_map_objectclass posixAccount 用户 nss_map_objectclass shadowAccount 用户 nss_map_objectclass posixGroup 组 nss_map_attribute uniqueMember 成员 nss_map_attribute 主目录 Unix主目录 nss_map_attribute gecos 名称 nss_map_attribute ou 描述

/etc/nsswitch.conf

密码:文件 ldap
影子:文件 ldap
组:文件 ldap
主机:文件 dns

以太:文件 网络掩码:文件 网络:文件 协议:文件 rpc:文件 服务:文件 网络组:文件 ldap 自动挂载:文件 ldap 别名:文件

/etc/pam.d/系统身份验证

身份验证需要 pam_env.so
身份验证充分 pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
身份验证充分 pam_ldap.so use_first_pass
身份验证需要 pam_deny.so

帐户需要 pam_unix.so broken_shadow 帐户足够 pam_succeed_if.so uid < 500 安静 帐户 [默认=错误 成功=确定 用户未知=忽略] pam_ldap.so 帐户需要 pam_permit.so

密码要求 pam_cracklib.so retry=3 密码足够 pam_unix.so md5 shadow nullok try_first_pass use_authtok 密码足够 pam_ldap.so use_authtok 需要密码 pam_deny.so

会话可选 pam_keyinit.so 撤销 会话需要 pam_limits.so 会话可选 pam_mkhomedir.so 会话 [成功 = 1 默认 = 忽略] pam_succeed_if.so 服务在 crond 中安静 use_uid 会话需要 pam_unix.so 会话可选 pam_ldap.so

/etc/pam.d/passwd 中仅包含通常的 3 个 system-auth 行。

答案1

您是否在使用 Kerberos 或 Samba winbind?还是您只是尝试直接使用 LDAP?

如果是后者,您的 /etc/ldap.conf 文件应该有一系列似乎缺失的“pam_*”参数。特别是“pam_password 广告' 必须指定 ADSI 作为密码更改协议。您可能还需要“pam_login_attribute sAMAccountName”(+ 其他)

我个人一直都是使用 winbind 绑定 Linux 机器,然后更改密码就像使用“net ads password”一样

相关内容