20.3. 外部更改密码
虽然大多数密码可以通过 ldapmodify 操作来更改,但有些密码无法通过常规 LDAP 操作进行更改。这些密码可能存储在 Directory 服务器之外,如存储在 SASL 应用程序中的密码。这些密码可以通过 密码更改扩展操作 进行修改。
目录服务器支持 RFC 3062 中定义的密码更改扩展操作,因此用户可以使用适当的客户端以符合标准的方式更改密码。dsidm 工具传递指定用户的密码更改:
# dsidm ldap://server.example.com -D bind_dn -W -b dc=example,dc=com account change_password user newPassword oldPassword
重要
密码操作必须通过安全连接执行,即 SASL、TLS 或 STARTTLS。有关在 LDAP 客户端工具中使用安全连接的详情,请参考 第 9.9.4 节 “使用证书进行身份验证”。
有关参数的详情,请查看 dsidm instance_name 帐户 change_password --help 命令的输出。
要使用 STARTTLS,它会在非安全端口上运行命令,请使用 -Z 选项和标准 LDAP 端口号运行 dsidm。密码扩展更改操作的格式如下:
# dsidm ldap://server.example.com -Z bind_dn -W -b dc=example,dc=com account change_password user newPassword oldPassword
注意
要使 STARTTLS 连接正常工作,必须配置 TLS 环境变量,如 第 9.9.4 节 “使用证书进行身份验证” 所述。
使用 -Z 选项强制连接成功。
若要修改条目的密码,请以任何其他操作一样运行 dsidm。需要指定一个绑定 DN,即使帐户与绑定 DN 中给出的相同。例如:
# dsidm ldap://server.example.com -Z bind_dn -W -b dc=example,dc=com account change_password user newPassword oldPassword
对密码更改操作强制执行访问控制。如果绑定 DN 没有更改指定密码的权限,则操作将失败,并显示 Insufficient rights 错误。