免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2939 | 回复: 4
打印 上一主题 下一主题

为什么apache要以root身份运行? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-05 14:26 |只看该作者 |倒序浏览
rhel4.4系统默认安装的httpd服务。发现它的运行身份是root。请教下为什么不是apache呢?
不是所有的安全教程都谆谆教导我们,不要随便使用root身份?
ps auxf|grep httpd
root      3126  0.0  0.0  5784  440 pts/2    R+   14:19   0:00                      \_ grep httpd
root      3108  0.0  1.7 20552 9116 ?        Ss   14:12   0:00 /usr/sbin/httpd
apache    3111  0.0  1.1 20644 5880 ?        S    14:12   0:00  \_ /usr/sbin/httpd
apache    3112  0.0  1.1 20552 5856 ?        S    14:12   0:00  \_ /usr/sbin/httpd
apache    3113  0.0  1.0 20552 5264 ?        S    14:12   0:00  \_ /usr/sbin/httpd
apache    3114  0.0  1.0 20552 5264 ?        S    14:12   0:00  \_ /usr/sbin/httpd
apache    3115  0.0  1.0 20552 5264 ?        S    14:12   0:00  \_ /usr/sbin/httpd
apache    3116  0.0  0.9 20552 4828 ?        S    14:12   0:00  \_ /usr/sbin/httpd
apache    3117  0.0  1.0 20552 5264 ?        S    14:12   0:00  \_ /usr/sbin/httpd
apache    3118  0.0  1.0 20552 5264 ?        S    14:12   0:00  \_ /usr/sbin/httpd

论坛徽章:
0
2 [报告]
发表于 2007-05-05 14:56 |只看该作者
普通用户无法打开1024以下的端口。

论坛徽章:
0
3 [报告]
发表于 2007-05-05 17:59 |只看该作者
那为什么使用3306端口的mysql也是root身份?
ps aux|grep mysqld
root      3240  0.0  0.2  6860 1248 pts/2    S    15:20   0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/my.cnf --pid-file=/var/run/mysqld/mysqld.pid
mysql     3268  0.2  9.2 395604 47664 pts/2  Sl   15:20   0:00 /usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
root      3325  0.0  0.1  5060  640 pts/2    R+   15:22   0:00 grep mysqld

论坛徽章:
0
4 [报告]
发表于 2007-05-05 18:29 |只看该作者
原帖由 wildlily980 于 2007-5-5 14:26 发表于 1楼  
rhel4.4系统默认安装的httpd服务。发现它的运行身份是root。请教下为什么不是apache呢?
不是所有的安全教程都谆谆教导我们,不要随便使用root身份?
ps auxf|grep httpd
root      3126  0.0  0.0  5784  4 ...


1. apache 一般要 listen 80 port, 這個運作需要特權, 所以得使用 root 身分. 不過後續服務運作 apache daemon 都會切換成為一般身分提供服務運作.

2. 至於你問到 mysql 部分也還好, 因為只是啟動 mysqld_safe script 是使用 root 身分執行, 所以執行身分當然是 root. 不過一般都配置 mysql daemon 用 mysql 這個一般身分運作, 所以最後服務運作都還是以一般帳號提供服務來運作.

若你真的要用一般身分運作執行 mysqld_safe , 你可以改一下 /etc/init.d/mysqld, 用 su -l mysql "mysqld_safe ..." 等這類方式來啟動該程序即可

--

论坛徽章:
0
5 [报告]
发表于 2007-05-05 18:33 |只看该作者
原帖由 kenduest 于 2007-5-5 18:29 发表于 4楼  


1. apache 一般要 listen 80 port, 這個運作需要特權, 所以得使用 root 身分. 不過後續服務運作 apache daemon 都會切換成為一般身分提供服務運作.

2. 至於你問到 mysql 部分也還好, 因為只是啟動 mysql ...



谢谢,我自己搞糊涂了,也误导了大家。
经您提醒,我想起来了,其实这两个服务都是我自己用root身份来启动的,等有机会让系统开机启动再看看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP