/etc/passwdでルートシェルを手動で編集しましたが、タイプミスがありました。雪だるまとして、私のボックスにはsudoユーザーがいません。
だから私は次のことを試み、次のような結果を得ました。
$ su -s '/bin/bash chsh root' root
Password:
Cannot execute /usr/bin/scrrn: No such file or directory
(私がしたことを見ましたか?)。
私はマンページでこれがまさにこれだと思います。
If the target user has a restricted shell (i.e. the shell field of
this user's entry in /etc/passwd is not listed in /etc/shells),
then the --shell option or the $SHELL environment variable won't be
taken into account, unless su is called by root.
たぶん私の質問はsu -sに関するものではないはずですが、ここから始めることができます。
ベストアンサー1
1つの可能性は、シングルユーザーモードでシステムを起動するか、リカバリブートUSBフラッシュドライブ(ディストリビューションによって異なります)を使用して誤字を修正することです。/etc/passwd
多くのLinuxシステムでは、パラメータ化されたカーネルを実行するようにGRUBブートローダに指示できますinit=/bin/bash
。これを行うと、もう一度編集できます。注意深いあなたの/etc/passwd
ところで、正しいことはシェルを変更することですが、実際にはそうしたくありchsh
ません。chsh
/usr/bin/screen
root
(他のuid 0とシェルアカウントを作成できます/usr/bin/screen
。それが賢明かどうかはわかりません...)
最後によく読んでください数(1):
-s
、--shell=
殻Run the specified shell instead of the default.
したがって、以下を実行する必要があります/bin/su -s /bin/bash
。/bin/bash chsh root
いいえ実行可能ファイルのパス(次のようにすることができます)実行(2)-d をシェルとして使用)、シェルがリストにない場合、ルートには影響しません。/etc/shells
また試すことができます/usr/bin/sudo SHELL=/bin/bash -s