デフォルトのシェルエラー時にSSH経由でログインする方法

デフォルトのシェルエラー時にSSH経由でログインする方法

デフォルトのルートシェルを無効なパスに変更しました。最初の行は/etc/passwd次の文字列のようになります。

root:x:0:0:root:/root:/usr/bin/bash

その後、サーバーからログアウトしましたが、ルート経由でログインできなくなりました。

サーバーに他のユーザーがいません。

わかりました、ここには愚かなエラーがたくさんあります。しかし、どのように修正しますか?

サーバーはSSHを介してのみ接続できます。

修正する

これはできません。 www-dataユーザーとしてすべてのコマンドを実行する方法を見つけました。/etc/passwdsudo以外のユーザーにどのように変更しますか?

答え1

SSHと無効なシェルを使用してログインできません。無効なシェルを設定することは、ユーザーのログインを許可せずに一部のSSHサービスを使用する標準的な方法です(例:gitを参照)。したがって、代替方法を使用すると、多くのサーバーのセキュリティが危険になる可能性があります。

同様に、sudoer以外のアカウントにアクセスすることは役に立ちません。 rootアカウントを「ログインを許可しない」設定に設定しました。したがって、ログインできません。

カスタムカーネルパラメータまたは一部のローカルコンソールを使用して再起動する必要があります。

答え2

シェルコマンドを明示的に実行してみてください。

ssh <hostname> /bin/bash 

それ以外の場合は、passwdファイルなどを回復するコマンドを作成してみてください。私はシェルが明示的なコマンドを実行できると思いますが、シェルの実行がデフォルト値かもしれません。また、SSHオプションを確認してください。機能するには、一部を選択する必要があります。

関連情報