SSH ログインが存在しないコマンドを実行しようとします。

SSH ログインが存在しないコマンドを実行しようとします。

私のサーバーをDebian 9から10にアップグレードし、次にSSHに接続したときに再起動した後、次のエラーが発生します。

-bash: root:x:0:0:root:/root:/bin/bash: No such file or directory
-bash: daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin: No such file or directory
-bash: bin:x:2:2:bin:/bin:/usr/sbin/nologin: No such file or directory
-bash: sys:x:3:3:sys:/dev:/usr/sbin/nologin: No such file or directory
-bash: sync:x:4:65534:sync:/bin:/bin/sync: No such file or directory
-bash: games:x:5:60:games:/usr/games:/usr/sbin/nologin: No such file or directory
-bash: man:x:6:12:man:/var/cache/man:/usr/sbin/nologin: No such file or directory
-bash: lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin: No such file or directory
-bash: mail:x:8:8:mail:/var/mail:/usr/sbin/nologin: No such file or directory
-bash: news:x:9:9:news:/var/spool/news:/usr/sbin/nologin: No such file or directory

/etc/passwd の内容と似ており、その内容が実行されると見てどこかに問題があるようです。

上記を試すことができるセッションが開かれたときにSSHログインは何をしますか? /etc/profileを確認しましたが、すべてが標準的に見えます。 ~/.bashrcを削除しようとしましたが、何も変更されませんでした。

助けてくれてありがとう。ありがとうございます。

答え1

はい、/etc/passwdを実行しようとしています。またはそのコピー

実際、最初の作業はディスクをfsckし、アップグレード前のバックアップに復元することです。

  1. これは、既知の良好な状態に至る最も安定した経路でなければなりません。
  2. 腐敗がこの行為に限定されることを知りませんか?
  3. アップグレードによって問題が発生したことを確認できるはずです。

....しかし、問題をさらに分離するため....

sshd / sshはシェル以外のものを実行しません(この場合はbash)。シェルは起動方法に応じて起動時にさまざまなファイルを実行します。 @Vilinkameniの説明にあるリンクを参照してください。

チェックに便利な Debian 9 または 10 ホストはありませんが、/etc/profile のデフォルトスクリプトは通常 /etc/profile.d/ のすべてのスクリプトを実行します。 。

/etc/profile を調べると、ワークチェーンで誤った動作が発生した場所を確認できます。上で見た内容はSTDERRに書くことです。コードもそこに書く必要があります(stdoutとstderrが必ずしも同期されるわけではありません)。

echo "DEBUG: $BASH_SOURCE[0] : $LINENO" >&2

Debian 10は6ヶ月前に中止され、Debian 9は20ヶ月前に中止されました。

関連情報