デフォルトのルートシェルを無効なパスに変更しました。最初の行は/etc/passwd
次の文字列のようになります。
root:x:0:0:root:/root:/usr/bin/bash
その後、サーバーからログアウトしましたが、ルート経由でログインできなくなりました。
サーバーに他のユーザーがいません。
わかりました、ここには愚かなエラーがたくさんあります。しかし、どのように修正しますか?
サーバーはSSHを介してのみ接続できます。
修正する
これはできません。 www-dataユーザーとしてすべてのコマンドを実行する方法を見つけました。/etc/passwd
sudo以外のユーザーにどのように変更しますか?
答え1
SSHと無効なシェルを使用してログインできません。無効なシェルを設定することは、ユーザーのログインを許可せずに一部のSSHサービスを使用する標準的な方法です(例:gitを参照)。したがって、代替方法を使用すると、多くのサーバーのセキュリティが危険になる可能性があります。
同様に、sudoer以外のアカウントにアクセスすることは役に立ちません。 rootアカウントを「ログインを許可しない」設定に設定しました。したがって、ログインできません。
カスタムカーネルパラメータまたは一部のローカルコンソールを使用して再起動する必要があります。
答え2
シェルコマンドを明示的に実行してみてください。
ssh <hostname> /bin/bash
それ以外の場合は、passwdファイルなどを回復するコマンドを作成してみてください。私はシェルが明示的なコマンドを実行できると思いますが、シェルの実行がデフォルト値かもしれません。また、SSHオプションを確認してください。機能するには、一部を選択する必要があります。