passwd でユーザー パスワードを変更することはできません。エラー "passwd: sorry"

passwd でユーザー パスワードを変更することはできません。エラー "passwd: sorry"

私はFreeBSDサーバーを持っていますが、奇妙な問題があります。パスワードを変更しようとするたびに、このエラーが発生します。

~$ passwd
Changing local password for <USER>
Old Password:
passwd: sorry

ルートアカウントは影響を受けません。

ログに手がかりが見つかりません。認証に LDAP を使用しておらず、サーバーは jail 内で実行されています。

答え1

passwdソース コードは非常に短くて単純なので、FreeBSD のユーティリティ内でその特定のメッセージが印刷される唯一の場所を見つけるのに少ししかかかりませんでした。

具体的には、PAM がユーザーの認証に失敗した場合に発生します。つまり、次のいずれかです。

  1. 古いパスワードを間違って入力しました。
  2. passwd適切な権限がありません。setuid root にする必要があります。
  3. ローカル PAM 設定がひどく壊れています。この場合、誰もログインできなくなります。

私は2に賭けます。

答え2

これは NIS の問題である可能性があります。nsswitch.conf をチェックして、NIS または YP (Yellow Pages) の使用を無効にします。その後、問題が解決したかどうかを確認します。

関連情報