今天早上我在2个月后打开了一台机器,并且在这里和那里发现了/etc/init.d/下面的文件后,apache没有作为守护进程运行
-rwxr-xr-x 1 root root 0 2011-03-04 06:39 apache2 -rwxr-xr-x 1 root root 0 2011-02-03 06:40 apache2.1 -rwxr-xr-x 1 root root 6157 2010-04-14 01:50 apache2.2
我想提一下,我没有在/etc/init.d/中创build这些apache文件,你看到apache2.1和apache2.2后浪费了一些时间来启动apache我只find
/etc/init.d/apache2.2 start是启动apache2守护进程,如果我使用/etc/init.d/apache start,那么这是行不通的。
然后我看到在ps输出下面
ps -el | grep apache2 1 S 0 2466 1 0 80 0 - 32139 poll_s ? 00:00:00 apache2 5 S 33 2617 2466 0 80 0 - 32268 inet_c ? 00:00:00 apache2 5 S 33 2625 2466 0 80 0 - 32310 inet_c ? 00:00:00 apache2 5 S 33 4211 2466 0 80 0 - 32271 inet_c ? 00:00:00 apache2 5 S 33 9072 2466 0 80 0 - 32179 inet_c ? 00:00:00 apache2 5 S 33 9079 2466 0 80 0 - 32177 inet_c ? 00:00:00 apache2 5 S 33 9080 2466 0 80 0 - 32177 inet_c ? 00:00:00 apache2 5 S 33 9081 2466 0 80 0 - 32179 inet_c ? 00:00:00 apache2 5 S 33 9082 2466 0 80 0 - 32177 inet_c ? 00:00:00 apache2 5 S 33 9083 2466 0 80 0 - 32179 inet_c ? 00:00:00 apache2 5 S 33 9084 2466 0 80 0 - 32177 poll_s ? 00:00:00 apache2
在/ etc / passwd文件中,我看到
www-data:x:33:33:www-data:/var/www:/bin/sh
所以剩下的进程有33个uid和pid对应于www-data,但是如果你注意到上面输出中的第一个有uid 0
那么,如果我要问,或者我应该在我的服务器进一步调查,并看起来妥协? 文件apache2.1和apache2是空白的,只有apache2.2具有init等所需的function
不知道启动脚本。 “master”apache进程应该以root身份运行(您会注意到它是父进程的pid 1)。 passwd中的条目看起来是正确的。
预期这种行为与默认的Apache MPM(worker和prefork)。 父进程由root启动。 通过fork和setuid系统调用,subprocess将放弃权限并以www数据用户(系统上的uid 33)运行。 该用户由httpd.conf的User指令控制。
Apache文档在这里 。