質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.13%

CentOS7、suコマンドでrootにログインできない、パスワードは絶対あっているのになぜ?

解決済

回答 3

投稿

  • 評価
  • クリップ 6
  • VIEW 11K+

score 25

WindowsのPCでVirtualBox上でCentOS7を使っています。

su
su root
などのコマンドでrootユーザーに切り替えができません。

以下2つのユーザーがいます。
root
taro

taroでログイン中にsuコマンドを使うと、
パスワード入力を求めら、rootのパスワードを入れると
su: Authentication failure
と表示されます。
以前はこの手順でrootに切り替わっていました。

exitコマンドで、taroを一旦ログアウト、
VirtualBoxのターミナル上に
localhost login: 
というプロンプトが出てきて
root
と入力しエンター、
Password:
というプロンプトが出てきて
rootのパスワードを入力しエンター。

これでログインできるので
rootのパスワードが間違っている訳ではないです。

確認のために
useradd jiro
passwd jiro
コマンドで新しくjiroというユーザーを作成。

rootでログイン中
su taro
su jiro
どちらも成功。
パスワード入力を求められず、ユーザーが切り替わる。

taroでログイン中
su root
su jiro
どちらも失敗。
パスワード入力を求められ、正しいパスワードを入力したはずなのに
su: Authentication failure

jiroでログイン中
su root
su taro
どちらも失敗。
パスワード入力を求められ、正しいパスワードを入力したはずなのに
su: Authentication failure

rootユーザーに切り替わらないというよりは、suコマンドのパスワード照合処理がうまいくっていないという印象?

suコマンドが使えなくなる現象について、何かご存知でしたらアドバイスをお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

check解決した方法

+8

自己解決。

chmod u+s /usr/bin/su

上記コマンドの実行でsuコマンドが復活しました。

suの実行ファイルの権限、
元は4755(rwsr-xr-x)らしいんですが
777(rwxrwxrwx)になっていました。

suコマンドは、所有者の実行権限がxじゃなくてsじゃないといけない。
実行権限がsだと、所有者以外がsuコマンドを実行した時でも、裏では所有者(root)の権限で処理が走っている。

/usr/share/nginx/html
に権限を追加したくて、横着して
chmod 777 -R /usr
とコマンド実行した記憶があります。
お騒がせしました。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2021/04/01 23:58

    あー、そりゃだめですね。

    別途、同じOSをインストールして、それの/usr以下を見て、/usr以下のパーミッションを全部合わせましょう。

    可能なら、データをバックアップして、ゼロからインストールし直した方が良いです。

    キャンセル

  • 2021/04/02 00:09

    VirtualBoxで作った試験環境、特に重要なデータも入っていないのでOSから作り直すことにします。
    ご協力ありがとうございました。

    キャンセル

  • 2021/04/02 10:31

    自己解決の内容を書いてくださってありがとうございます。

    キャンセル

+1

以前出来ていたというなので、違うかも知れませんが、
設定により、wheelグループに属しているユーザーだけがsuでrootになれます。

/etc/pam.d/suwheelの行がコメントかどうか。コメントでなくて有効な場合、

id
で、
uid=1000(foo) gid=1000(foo) groups=1000(foo),10(wheel)


のように、wheelが表示されますか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2021/04/01 22:54 編集

    taroは以前からwheelグループに追加済。
    idコマンドで、groupsに10(wheel)が表示されます。

    usermod -aG wheel jiro
    上記コマンドでjiroもwheelに追加しました。
    状況は変わらず。


    cat /etc/pam.d/su | grep wheel
    コマンドの実行結果は下記のとおり。

    # Uncomment the following line to implicitly trust users in the "wheel" group.
    #auth sufficient pam_wheel.so trust use_uid
    # Uncomment the following line to require a user to be in the "wheel" group.
    #auth required pam_wheel.so use_uid


    auth sufficient pam_wheel.so trust use_uid
    auth required pam_wheel.so use_uid
    の2行をコメントアウト解除すると
    suコマンド実行時にパスワード入力は発生せず
    su: Authentication service cannot retrieve authentication info
    というエラーに変わりました。
    (su: Authentication failureというエラーは出ない)

    auth sufficient pam_wheel.so trust use_uid
    だけコメントアウト解除した場合も同様に、suコマンドで
    su: Authentication service cannot retrieve authentication info
    というエラー。

    auth required pam_wheel.so use_uid
    だけコメントアウトした場合は、suコマンドでパスワード入力発生、パスワード入力後
    su: Authentication failure
    というエラー。

    キャンセル

  • 2021/04/01 23:22

    1つめのは、「wheelグループの人はパスワード入れなくてもrootになれる」で、
    2つめのは、「wheelグループの人だけがrootになれる」なので、機能通りです。

    やっぱり原因は別でしたか。

    /etc/pam.d/su の内容を編集して様子を調べるのでしょうかね。

    キャンセル

+1

わかりませんけど思いつくところで。
・type su の結果
・ls -l /bin/su の結果
・/etc/passwd と /etc/shadow の root の内容 (出せる範囲で)
・/etc/pam.d/su の内容
・strace su の結果
・env - su の結果 (環境変数をクリアしてやってみる)
・全体的に su - のパターンもやってみる
・/var/log/ になにか出ていないか

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2021/04/02 00:01

    アドバイスありがとうございます。
    /bin/su
    の権限が不足しているのが原因でした。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.13%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る