PR
PR

Nginxの実行ユーザーとグループを確認する2つの方法

記事内に広告が含まれています。

Nginxの実行ユーザとグループを確認するための2つの方法を紹介します。

実行中のプロセスから確認する (psコマンド)

実際に動作しているNginxプロセスのユーザーとグループを確認する、最も確実な方法です。

psコマンドの「o」オプションを使うと、表示したい項目を「,」区切りでを自由に指定することができます。

下記のように、ユーザ名(user)、グループ名(gropu)、コマンド名(command)を指定して、その結果を「|」(パイプ)でgrepに渡してnginxという文字列が含まれている行のみ表示させることで、動作してるNginxのユーザ名、グループ名を確認することができます。

ps axo user,group,command | grep nginx 

実行結果の例

以下はコマンドの実行結果の例です。

$ ps axo user,group,command | grep nginx  
root     root     nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx    nginx    nginx: worker process
nginx    nginx    nginx: worker process
nginx    nginx    nginx: worker process
nginx    nginx    nginx: cache manager process
nginx    nginx    php-fpm: pool www
nginx    nginx    php-fpm: pool www
tamohiko tamohiko grep --color=auto nginx

結果の見方

Nginxは役割の違うプロセスで動作していて、それぞれ別のユーザとグループで実行されていました。

  • master process: rootユーザ、rootグループで起動
    Nginx全体の司令塔で、設定ファイルを読み込み、ポートの確保など起動時にroot権限が必要な処理だけを行います。
  • worker process: nginxユーザ、nginxグループで起動
    実際にクライアントと通信を行う役割をもっています。
  • cache manager process: nginxユーザ、nginxグループで起動
    Nginxのキャッシュ機能を管理するプロセスです。

※NginxとバックエンドアプリケーションをUNIXドメインソケットで連携させる際に合わせる必要があるのは、「worker process」のユーザーとグループです。

Nginxの設定ファイルから確認する (nginx.conf)

Nginxの設定ファイルである「/etc/nginx/nginx.conf」の「user」項目で実行ユーザが設定されています。

$ grep '^user' /etc/nginx/nginx.conf
user  nginx;

※ 「^user」とすることで、行頭が「user」で始まる行(設定項目)のみを的確に探せます。

ユーザ名だけが指定されている場合

この場合は、グループ名が指定されていないので、ユーザ名と同じ「nginx」グループが適用されます。

user nginx;

ユーザ名とグループ名の両方が指定されている場合

このようにスペース区切りで記述されている場合、1つ目がユーザー名 (nginx)、2つ目がグループ名 (www-data) となります。

user nginx www-date;

まとめ: どちらの方法を使うべき?

2つの方法には、それぞれ以下のような意味合いがあります。

  • psコマンド: 「今、実際にどう動いているか」という現実を確認する方法
  • 設定ファイル(nginx.conf): 「本来、どう動かすべきか」という設定を確認する方法

基本的には、まず設定ファイルで設定内容を確認し、その上でpsコマンドを使って実際の動作を検証するのが、最も確実で間違いのない手順と言えます。

コメント

タイトルとURLをコピーしました