nginxサーバーをインストールしました。ちょうど受信ポートを確認し、以下を確認しました。
$ sudo lsof -nP -i | grep LISTEN
sshd 614 root 3u IPv4 7712 0t0 TCP *:22 (LISTEN)
nginx 822 root 7u IPv4 8745 0t0 TCP *:80 (LISTEN)
nginx 827 www-data 7u IPv4 8745 0t0 TCP *:80 (LISTEN)
nginx 828 www-data 7u IPv4 8745 0t0 TCP *:80 (LISTEN)
nginx 829 www-data 7u IPv4 8745 0t0 TCP *:80 (LISTEN)
nginx 830 www-data 7u IPv4 8745 0t0 TCP *:80 (LISTEN)
.
.
.
「www-data」ユーザーとして4つのnginxプロセスが実行され、「rootユーザー」として1つが実行される理由が気になります。
ベストアンサー1
目立つプロセスは、他のすべてのnginxプロセスを開始する基本プロセスです。このプロセスは、nginxを起動するinitスクリプトによって開始されます。プロセスがrootとして実行されるのは、単にrootとして起動したからです。他のユーザーとして起動できますが、そのユーザーがnginxに必要なすべてのリソースにアクセスできることを確認する必要があります。通常、少なくとも/var/log/nginxと/var/run/の下のpidファイルです。
最も重要なのは、ルートプロセスだけが1024未満のポートを受信できることです。 Webサーバーは通常、ポート80および/または443で実行されます。これは root で開始する必要があることを意味します。
要約すると、ルートが実行するマスタープロセスは完全に正常であり、ほとんどの場合通常の動作に必要です。
編集:何でもrootとして実行すると、暗黙のセキュリティリスクが発生します。通常、これらのソフトウェア開発者は攻撃ベクトルについて多くのことを知っており、ルートの実行をできるだけ少なくするように細心の注意を払っています。結局、ソフトウェアの品質が良いことを信頼できます。
それでも不安なら、他のユーザーとしてnginxを実行し、1024未満のポートを使い続ける方法があります。 iptables を使用して、ポート 80 からのすべての着信トラフィックを 8080 などの他のポートにリダイレクトし、nginx がそのポートでリッスンできるようにします。