su -s '/bin/bash' /etc/passwd でシェルを引き続き使用します。

su -s '/bin/bash' /etc/passwd でシェルを引き続き使用します。

/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/screenroot

(他の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

おすすめ記事