Sun ONE Directory Server を digest-MD5 で使用する場合は、パスワードを変更するユーザーが何らかのパスワード管理上の理由で変更に失敗すると、変更後のパスワードを使用してログインできなくなります。
たとえば、サーバーでパスワード履歴が有効である場合、ユーザーが以前に使用していたパスワードに変更しようとすると、制約違反 (この場合は以前に使用していたパスワードを使用すること) のために pam_ldap はパスワードの変更に失敗します。pam は pam_ldap を無視して、pam_unix に行き着きます。結果として、パスワードが平文ではなく、暗号化形式で格納されます。このため、次にユーザーが変更後のパスワードを使用してログインを試みると、ログインは失敗します。
pam_ldap が pam_unix に行き着くことを防ぐには、すべてのクライアントの pam.conf ファイルで次の構成を使用する必要があります。
other password required pam_dhkeys.so.1 other password requisite pam_authtok_get.so.1 other password requisite pam_authtok_check.so.1 other password binding pam_authtok_store.so.1 server_policy |
上記の構成には、pam_ldap.so.1 が存在しないことに留意してください。server_policy は、pam_authtok_store.so.1 が常に LDAP アカウントの平文テキストをディレクトリサーバーに送信することを指定し、サーバーが独自のパスワード暗号化スキーマに従ってパスワードを格納することを許可します。ただし、上記の構成を使用する場合、これと適合した認証構成も必要になります。たとえば、次の構成を使用します。
login auth binding pam_unix_auth.so.1 server_policy login auth required pam_ldap.so.1 |
および
passwd auth binding pam_passwd_auth.so.1 server_policy passwd auth required pam_ldap.so.1 |
同じディレクトリネーミングドメイン内のすべてのクライアントが、上記の構成を使用するようにしてください。 1 つのクライアントで別の pam.conf を使用している場合でも、ユーザーがそのシステム上でパスワードを変更すると、残りのクライアントでログイン認証が失敗します。