ユーザーのシェルを変更しようとしましたが、「Sudo chsh」を使用し、ルートシェルを「/ bin/bash」ではなく「bash」に変更しました。これを変更しようとすると、「chsh:PAM認証に失敗しました」というメッセージが表示され、他のものも機能していないようです。
~$ Sudo su
Cannot execute bash: No such file or directory
これはリカバリモードでも発生します。使用可能なものに変更するにはどうすればよいですか?
通常のユーザーを使用してログインできる場合は、rootユーザーのシェルを直接変更するだけです。
Sudo gedit /etc/passwd
Rootユーザーの行(通常は最初の行)を見つけて、最後の部分をから変更します。
...:bash
に
...:/bin/bash
そして、あなたは行ってもいいはずです。
(注:geditを好きなエディターに置き換えてください。)
Ubuntuインストールディスクを使用してライブセッションを起動します。
ルート( '/')パーティションをハードディスクにマウントします(書き込み可能であることを確認してください)。
'[HDマウントポイント]/etc/passwd'(例:/ media/sda1/etc/passwd)を編集します。
ルートを最初の行にする必要があります。行の最後のエントリとなるログインシェルを修正するだけです。
ハードディスクをアンマウントします。 CDを取り出します。リブート
私は何年も前にこれで遊んだ:
cd /bin ; Sudo su
何が起こっているのかというと、前に/がない場合、シェルは相対パスとして解釈されます。/binにいると、正しく解決されます。
あなたが本当に行き詰まったら;レスキューCDは長い道のりです。ブートオプションinit =/bin/shは、ルートシェルをすぐに提供します。カーソルはプロンプトなしで点滅しますが、ルートシェルがあります。行う
set -i
# mount / -o remmount,rw
# vi /etc/passwd
<fix it>
# mount / -o remount,ro
# reboot -f
短期的な回避策として、suコマンドの「-s」スイッチを使用してシェルを指定できることに注意してください。例えば:
su -s /bin/bash
/ bin/bashシェルでsuセッションを開始します。 Sudo su -s/bin/bash(または任意のシェル)@BjarkeFreundにも同じことが言えます-Hansenの答えは永続的な修正です。