
ログインシェルを変更してみました。
最初の行は次のようになります/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
まあ、フルパスに変えるのは論理的なようです。しかし、どうすればいいですか?
私のシステムに別のユーザー()がありますが、user
root権限がなく、sudo
システムにインストールされていません。
何らかの理由で(暗号化、物理アクセス...)ファイルを変更するためにLive CDから起動できないとしましょう。
しかし、私はそのアカウントの資格情報を知っていますroot
。
root
私の質問は:プログラムで最初にログインシェルを起動せずにアカウントプロセスを開始する方法はありますか?
答え1
su許可を受ける
次のコマンドを使用して、すべてのユーザーのシェルを変更できます。
su -c "/usr/bin/chsh -s /bin/bash root"
物理的にアクセスできる場合
Grubの起動中にコンソールへのアクセス権があり、Grubメニューへのアクセスを妨げるパスワードがない場合は、どのシステムにも入ることができます。
システムの初回起動中にGrubメニューが表示されたら、メニューに移動してカーネル行を編集します(ekeypress次のいずれかを追加して、カーネルがシングルユーザーモードで起動するようにします)。
- 一つ
- 初期化=/bin/sh
- 1
行は次のとおりです。
kernel /vmlinuz-2.6.15-27-386 root=/dev/mapper/Ubuntu-root ro init=/bin/bash
Grubでは、次のようになります。
変更が完了したら、カーネルを起動します(キーを押しますb)。
/etc/passwd
これにより、vi / vimを使用してファイルを必要に応じて変更できるシェルを介してシステムに一時的にアクセスできます。reboot
完了したら入力してください。