passwdコマンドが一般ユーザーで実行できない!?

このエントリーをはてなブックマークに追加

こんにちは。

今回は、

passwdコマンド

の実行におけるトラブルと対処について書いてみたいと思います。

管理をしているサーバに、Linuxを使っているサーバがあるのですが、殆ど、管理者ユーザー(root)を使って、設定変更などしているので、一般ユーザーでの動作を全くしていなかったのですが、たまたま、今回、このサーバに登録している一般ユーザーの方から、パスワードを変更するために、

# passwd

を実行したところ、

# passwd: Authentication token manipulation error

というエラーが出て、パスワードが変更できなかったとの連絡を貰いました。

そこで、思い当たる原因が2つほどあったので、1つ1つあたってみました。

まず1つ目。

このエラーが出たときですが、大半の原因が、

/etc/passwd
/etc/shadow

の整合性がとれていないために発生するエラーのようなので、

# pwconv

を実行し、2つのファイルの整合性を取ってみたのですが、エラーが解消されませんでした。

 

2つ目。

改めてrootユーザーで、passwdコマンドを実行してみたところ、何ら問題なくパスワードが変更できましたので、もしやと思い、改めて、一般ユーザーでpasswdコマンドを実行したところ、上記エラーが出ました。

このことから、単純にpasswdコマンドが一般ユーザーから実行できない権限になっていることが判ったので、

# chmod 4755 passwd

を実行し、SUID属性を付与し、一般ユーザーで実行できるようにパーミッションを変更しました。

※元々passwdのパーミッションは、rwxr-xr-xだったんですが、SUID属性の付与で、rwsr-xr-xになっています。

今回の場合、2つ目のSUID属性が付与されていなかったために一般ユーザーからパスワード変更が出来なかったようです。

それにしても、原因が2つあるのに、エラーメッセージは1つってのは、なんですかねぇ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です