ログインシェルを変更しようとしました。
/etc/passwd
の最初の行は次のようになります(Debian Wheezyインストールの場合)。
rootx:0:0:root:/root:/:zsh
root
としてログインしようとすると:
Cannot execute zsh: No such file or directory
zsh
が利用可能であることを知っています:
$ which zsh
/usr/bin/zsh
さて、zsh
をフルパスに置き換えるのは理にかなっているようです。しかし、どうすればそれを行うことができますか?
システムにもう1人のユーザー(user
)がいますが、root権限がなく、Sudo
がシステムにインストールされていません。
何らかの理由(暗号化、物理アクセスなど)で、ライブCDから起動してファイルを変更できないと仮定します。
ただし、root
アカウントの資格情報は知っています。
私の質問は、プログラムでさえ、最初にログインシェルを起動せずにroot
アカウントでプロセスを起動する方法はありますか?
次のコマンドを使用して、任意のユーザーのシェルを変更できます。
su -c "/usr/bin/chsh -s /bin/bash root"
Grubの起動中は、コンソールにアクセスでき、Grubメニューへのアクセスを妨げるパスワードがない限り、どのシステムにもアクセスできます。
Grubメニューが表示されたときのシステムの最初の起動時に、メニューに入って編集した場合(を押します) e キー)カーネルラインでは、次のいずれかを追加して、カーネルをシングルユーザーモードで起動できます。
行は次のようになります。
kernel /vmlinuz-2.6.15-27-386 root=/dev/mapper/Ubuntu-root ro init=/bin/bash
Grubでは、次のようになります。
変更を加えたら、カーネルを起動します(キーを押します) b)。
これにより、シェルを使用してシステムに一時的にアクセスでき、vi/vimを使用して/etc/passwd
ファイルに必要な変更を加えることができます。完了したら、reboot
と入力するだけです。