私は現在、カーネルバージョン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/*をさらに深く掘り下げる必要があると思いますが、どこから始めればよいかわかりません。
どんなアイデアでも大歓迎です。ありがとう!
更新された情報:
わかりました、私はそれを理解したと思います。 /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コマンドの機能が完全に復元されました。
スクリプトがそのオプションを追加したのか、それともデフォルトだったのかわかりません。
アイデアを提供しようとしたすべての人に感謝します。
問題はencryptfs(暗号化されたファイルシステムpamモジュール)に関係しているようです。ユーザーがパスワードを変更すると、ディスク暗号化パスフレーズをなんらかの方法で変更する必要があります。この変更の試みが失敗すると、すべてのパスワード変更プロセスが失敗し、ロールバックされます。参照: https://bugs.launchpad.net/ecryptfs/+bug/148647