はじめに
sudoでコマンドが見つかりませんになったので
suしてrootユーザのパスを設定しようと思ったら拒否られたので調べました
原因
bashからzshに移行したさいに手違いでrootのデフォルトシェルが/usr/local/bin/zshになってしまったか、そもそもrootシェルの設定をしてないが原因とみられる
rootパスを設定していないので、chshでrootシェルを設定できるはずがない!
実際のパス
❯ echo $SHELL
/usr/bin/zsh
まずシェルを変更する
sudo chsh root -s /usr/bin/zsh
####認証失敗のとき
sudo chsh root -s /usr/bin/zsh
chsh: PAM: 認証失敗
/etc/pam.d/chsh
を編集してシェルを変更できるようにする。
#
# The PAM configuration file for the Shadow `chsh' service
#
# This will not allow a user to change their shell unless
# their current one is listed in /etc/shells. This keeps
# accounts with special shells from changing them.
# ここをコメントアウトする
# auth required pam_shells.so
この状態でもう一度sudo chsh root -s /usr/bin/zsh
すれば変更できる。
変更できたら、コメントコメントアウトした行を元にもどす。
rootパスを変更する
$ sudo su -
$ passwd root
新しい UNIX パスワードを入力してください: xxx
新しい UNIX パスワードを再入力してください: xxx
passwd: パスワードは正しく更新されました
$ exit