管理者ユーザーでログイン後に、rootで作業をしようとしたら、suでパスワードが通らない!という問題の原因と解決方法。
目次
原因1:suコマンドにsetuidされていない
/usr/bin/su の set-user-ID bit を立てれば解決。
rootで以下コマンドを実行。
chmod u+s /usr/bin/su
原因2:パスワードミス
単純に打ち間違い。もしくは記憶違い。
「su: Authentication failure」というエラーがでてれば可能性が高い。
rootでパスワードを再設定。
パスワードが突然変わってた!という人は、chage -lコマンドでパスワードの有効期限切れでないか確認しておく。
【 chage 】コマンド――パスワードの有効期限を設定する/確認する:Linux基本コマンドTips(71) – @IT
それも違う!ということであれば、不正アクセスを疑ってlastとかlogチェックを。
原因3:/etc/pam.d/suの設定ミス
「su: Permission denied」というエラーがでていれば可能性が高い。
/etc/pam.d/suで、suしたいユーザーを許可すればOK。
流行りのsuできるユーザーグループ(wheelとかに)を限定しているなら、以下の行を有効化させる。(デフォルトで#が付いているので外す。)
auth required pam_wheel.so use_uid
管理ユーザ(rootになれるユーザ)が1IDしかなかった場合
上の対策は、すべてrootになって修正する必要がある。
sshd_configを弄っていて、そもそもrootでログインできない場合は、以下の対処で乗り切る。
rootのパスワードを変更
OSをシングルユーザモードで起動し、rootのパスワードを変更する。
最近のOS(centos7とか)なら、GRUB2の起動オプションの編集モードからrootのパスワードを変更する。
「sudo su -」でrootになる!
sudoコマンドでsu -を強引にやってとりあえずrootになる。
sudoできるユーザをあらかじめ作成していることが条件。