web-dev-qa-db-ja.com

Ubuntuサーバーがパスワードを変更できない

私は現在、カーネルバージョン3.13.0-65-genericでtrusty(Ubuntu 14.04.3 LTS)を実行しています。

Rootとして、ユーザーのパスワードを変更することはできません。

 root@server:~# passwd newuser
 passwd: Authentication token manipulation error
 passwd: password unchanged

また、rootアカウント自体のパスワードを変更することもできません。

root@server:~# passwd
passwd: Authentication token manipulation error
passwd: password unchanged

しばらく探していました。これは、r/wとしてマウントする必要がある/の問題ではありません。/etc/passwdと/ etc/shadowの権限は問題ありません。/etc/shadowファイル内のパスワードを手動で変更することができ、それは機能します。しかし、なぜpasswdがエラーを受け取っているのかを理解する必要があります。

/etc/pam.d/*をさらに深く掘り下げる必要があると思いますが、どこから始めればよいかわかりません。

どんなアイデアでも大歓迎です。ありがとう!

更新された情報:

  • コマンドラインで渡される無関係な文字はありません。
  • これは現在、既存および新規のすべてのユーザーの問題です。adduserを使用して新しいユーザーを追加しようとしましたが、パスワードの入力を求められたときにadduserスクリプトから同じエラーが発生しました。
2
Plazgoth

わかりました、私はそれを理解したと思います。 /etc/pam.d/*を掘り下げて、最も一般的な*ファイルのデバッグおよび監査オプションを有効にしました。それは私をpam_unixモジュールに向ける以外にはあまり役に立ちませんでした:

passwd[45463]: pam_unix(passwd:chauthtok): username [root] obtained
passwd[45463]: pam_unix(passwd:chauthtok): username [root] obtained
passwd[45463]: pam_unix(passwd:chauthtok): password - new password not obtained

Pam_unix.soに与えられたcommon-passwordの各オプションを詳しく調べ始めました。私が持っていたオプションは次のとおりでした:あいまいなuse_authtok try_first_pass sha512

pam_unixのマニュアルページを読むと、se_authtokがパスワードの変更に関連していることがわかりました。そして、pam_cracklibの後にそれを使用することについて話しました。私の場合、pam_cracklibがないので、そのオプションを削除してみることにしました。これにより、passwdコマンドの機能が完全に復元されました。

スクリプトがそのオプションを追加したのか、それともデフォルトだったのかわかりません。

アイデアを提供しようとしたすべての人に感謝します。

1
Plazgoth

問題はencryptfs(暗号化されたファイルシステムpamモジュール)に関係しているようです。ユーザーがパスワードを変更すると、ディスク暗号化パスフレーズをなんらかの方法で変更する必要があります。この変更の試みが失敗すると、すべてのパスワード変更プロセスが失敗し、ロールバックされます。参照: https://bugs.launchpad.net/ecryptfs/+bug/148647

0
DrNoone