sudo su で Cannot execute /usr/local/bin/zsh: No such file or directory と表示されてrootになれない時の対処法

sudo su - してroot になろうとしてもなれない事案に遭遇しました。

環境: ubuntu 12.04

$ sudo su -
Cannot execute /usr/local/bin/zsh: No such file or directory

挙動としては、root のデフォルトシェルを/usr/local/bin/zshに指定しているんだけども, そのパスとかファイルは無いのでシェルに入れていないと予想。

シェルを指定してsudo su - してやれば解決ですね.

$ sudo su -s $SHELL

ないし

$ sudo su -s $(print $SHELL)

root になれました。

原因はchsh で /usr/local/bin/zsh を指定したことだろうと推測します。

$ history | grep "/usr/local/bin/zsh"
chsh -s /usr/local/bin/zsh

やっぱり.

$ which bash
/bin/bash
$ chsh -s /bin/bash


で、根本解決するはずです。