ユーザーからルートシェルを変更することは可能ですか?

ユーザーからルートシェルを変更することは可能ですか?

私はあまり一般的ではない問題に直面していると思います。

chsh -s /bin/false root

そして今は としてログインできませんroot。 にログインする方法はありますかroot? コマンドを試しても

chsh -s /bin/true root

のシェルを変更できないという回答が得られroot、もちろん/etc/passwdでを編集しようとするとnano、その権限がないというメッセージが表示されます。

それで、ログインするための解決策はありますかroot?

答え1

以下を実行します:

ssh root@localhost /bin/bash

シェル プロンプトは表示されません。ただし、ls と入力して Enter キーを押すと、出力が表示されます。次に、次の sed コマンドを使用してルート シェルをリセットできます。

/usr/bin/sed -i -e 's|^\(root.*:\)[^:]*$|\1/bin/bash|g' /etc/passwd

ディストリビューションによっては、sed コマンドが /bin/sed の下にある可能性があります。

明らかにこれは必死の手段だ。

答え2

おそらく最も簡単な方法は、インストール メディアのレスキュー モードで起動して修正する/etc/passwdことです。

答え3

sudo /bin/bash問題なく動作するはずです。bashスーパーユーザー権限で実行するので、編集/etc/passwdや実行にchsh問題はないはずです。

答え4

sudo がインストールされていない場合は、簡単にインストールしてsudo /bin/bash動作するはずです。どの Linux ディストリビューションでも sudo を使用できます。

また、パスワードプロンプトが表示される場合は、公開鍵認証を使用してパスワードなしのsudoを有効にする必要があります。これを使用して設定します。https://spinupwp.com/doc/passwordless-sudo/

この場合は、ssh 公開鍵認証を使用する必要があります ^^。

関連情報