ユーザーのルートシェルを変更できますか?

ユーザーのルートシェルを変更できますか?

私が経験している問題は一般的ではないと思います。私は書いた

chsh -s /bin/false root

これでログインできませんroot。ログインする方法はありますかroot?コマンドを試すと

chsh -s /bin/true root

私が得た答えは、おそらくシェルを変更しないということrootでし/etc/passwdnano

それでは、ログインできるソリューションはありませんか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公開鍵認証を使用する必要があります^^。

関連情報