web-dev-qa-db-ja.com

Apacheの子プロセスがrootとして実行されるのはなぜですか?

私はApache2-mpm-preforkとApache2-mod-php5でUbuntuサーバー10.10を実行しています。

    User www-data
    Group www-data

構成ファイルで、ps -efHを実行すると、次の行が表示されます。

    root      1497     1  0 09:43 ?        00:00:00   /usr/sbin/Apache2 -k start
    root      1530  1497  0 09:43 ?        00:00:00     /usr/sbin/Apache2 -k start
    www-data  1531  1497  0 09:43 ?        00:00:00     /usr/sbin/Apache2 -k start
    www-data  1532  1497  0 09:43 ?        00:00:00     /usr/sbin/Apache2 -k start

どうやら、子プロセスはrootとして実行されていますが、なぜですか?

これは、Apacheを自分でコンパイルしたときにも発生しました。理由がわかりません。また、このルート子プロセスがリクエストを処理しているかどうかはまだわかりません。

3
dimsh

1024未満のポート(特権ポート)にバインドするプロセスは、バインドするためにrootとして実行する必要があります。したがって、メインのApacheプロセスはポートにバインドしてログファイルを開き、他のいくつかのルートのみの項目を実行します。

次に、子を生成して、要求を処理するすべての作業を実行します。

4
Mike

皆さん、ありがとうございます。これでほぼ明確になり、セットアップは安全だと確信しています。

netstat -tlnp|grep Apache2

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1497/Apache2

lsof -p 1497

COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF    NODE NAME
Apache2 1497 root  cwd    DIR                8,2     4096       2 /
Apache2 1497 root  rtd    DIR                8,2     4096       2 /
Apache2 1497 root  txt    REG                8,2  1437809 2755831 /usr/lib/Apache2/mpm-prefork/Apache2
Apache2 1497 root  mem    REG                8,2    88384 1835068 /lib/libgcc_s.so.1
Apache2 1497 root  mem    REG                8,2    10248 2755896 /usr/lib/Apache2/modules/mod_vhost_alias.so
Apache2 1497 root  mem    REG                8,2    22528 2755882 /usr/lib/Apache2/modules/mod_status.so
Apache2 1497 root  mem    REG                8,2    14336 2755847 /usr/lib/Apache2/modules/mod_setenvif.so
Apache2 1497 root  mem    REG                8,2    63488 2755865 /usr/lib/Apache2/modules/mod_rewrite.so
Apache2 1497 root  mem    REG                8,2    14344 2755892 /usr/lib/Apache2/modules/mod_reqtimeout.so
Apache2 1497 root  mem    REG                8,2  6069136 2757137 /usr/lib/Apache2/modules/libphp5.so
Apache2 1497 root  mem    REG                8,2    30728 2755875 /usr/lib/Apache2/modules/mod_negotiation.so
Apache2 1497 root  mem    REG                8,2    18432 2755836 /usr/lib/Apache2/modules/mod_mime.so
Apache2 1497 root  mem    REG                8,2    18432 2755880 /usr/lib/Apache2/modules/mod_headers.so
Apache2 1497 root  mem    REG                8,2    10240 2755862 /usr/lib/Apache2/modules/mod_env.so
Apache2 1497 root  mem    REG                8,2    10240 2755849 /usr/lib/Apache2/modules/mod_dir.so
Apache2 1497 root  mem    REG                8,2    26624 2755851 /usr/lib/Apache2/modules/mod_cgi.so
Apache2 1497 root  mem    REG                8,2    34824 2755885 /usr/lib/Apache2/modules/mod_autoindex.so
Apache2 1497 root  mem    REG                8,2    10248 2755843 /usr/lib/Apache2/modules/mod_authz_user.so
Apache2 1497 root  mem    REG                8,2    10248 2755841 /usr/lib/Apache2/modules/mod_authz_Host.so
Apache2 1497 root  mem    REG                8,2    10248 2755838 /usr/lib/Apache2/modules/mod_authz_groupfile.so
Apache2 1497 root  mem    REG                8,2     6152 2755900 /usr/lib/Apache2/modules/mod_authz_default.so
Apache2 1497 root  mem    REG                8,2    10248 2755887 /usr/lib/Apache2/modules/mod_authn_file.so
Apache2 1497 root  mem    REG                8,2    10248 2755856 /usr/lib/Apache2/modules/mod_auth_basic.so
Apache2 1497 root  mem    REG                8,2    14336 2755855 /usr/lib/Apache2/modules/mod_alias.so
....
Apache2 1497 root  DEL    REG                0,4             8727 /dev/zero
Apache2 1497 root    0r   CHR                1,3      0t0    4206 /dev/null
Apache2 1497 root    1w   CHR                1,3      0t0    4206 /dev/null
Apache2 1497 root    2w   REG                8,2     1578  524530 /var/log/Apache2/error.log
Apache2 1497 root    3u  IPv4               8506      0t0     TCP *:www (LISTEN)
Apache2 1497 root    4r  FIFO                0,8      0t0    8645 pipe
Apache2 1497 root    5w  FIFO                0,8      0t0    8645 pipe
Apache2 1497 root    6w   REG                8,2 36033304  524628 /var/log/Apache2/other_vhosts_access.log
Apache2 1497 root    7w   REG                8,2  1791423  524338 /var/log/Apache2/access.log
Apache2 1497 root    9u  unix 0xffff880037a5b0c0      0t0    8723 socket

lsof -p 1531

COMMAND   PID     USER   FD   TYPE             DEVICE SIZE/OFF    NODE NAME
Apache2 1531 www-data  cwd    DIR                8,2     4096       2 /
....
Apache2 1531 www-data    3u  IPv4               8506      0t0     TCP *:www (LISTEN)

行は何ですか:

Apache2 1531 www-data 3u IPv4 8506 0t0 TCP *:www(LISTEN)

ただし、lsof -p 1530

Apache2 1530 root  cwd    DIR                8,2     4096       2 /
Apache2 1530 root  rtd    DIR                8,2     4096       2 /
Apache2 1530 root  txt    REG                8,2  1437809 2755831 /usr/lib/Apache2/mpm-prefork/Apache2
....

TCPリッスンラインがないため、このルート子プロセスはリクエストを受け付けていません。@ Mikeが言ったように、この機能を必要とするモジュールがあるはずですが、どれを知ることができませんでした。 (私はそれらを1つずつ無効にしようとしましたが成功しませんでした)。

再度、感謝します。

0
dimsh