现有普通用户covapp. 使用这个用户启动apache,启动不了,加个sudo就可以执行,请问为什么?我的意思是,sudo究竟干了什么让我尅顺利执行?我man的结果是:sudo, sudoedit - execute a command as another user
看我的操作:
其一,
[covapp@station9 bin]$ pwd
/a01/software/apache/bin
[covapp@station9 bin]$ ll
total 1876
-rwxr-xr-x 1 covapp covapp 3473 Jun 8 2012 apachectl
[covapp@station9 bin]$ ./apachectl start
(13)Permission denied: make_sock: could not bind to address [::]:180
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:180
no listening sockets available, shutting down
Unable to open logs
这个是无法启动的,报错Permission denied: make_sock:
其二,
[covapp@station9 bin]$ sudo ./apachectl start
[covapp@station9 bin]$ ps -ef |grep httpd
root 2122 1 0 09:40 ? 00:00:00 /a01/software/apache-2.2.14-proxy/bin/httpd -k start
covapp 2124 2122 0 09:40 ? 00:00:00 /a01/software/apache-2.2.14-proxy/bin/httpd -k start
covapp 2125 2122 0 09:40 ? 00:00:00 /a01/software/apache-2.2.14-proxy/bin/httpd -k start
covapp 2127 2122 0 09:40 ? 00:00:00 /a01/software/apache-2.2.14-proxy/bin/httpd -k start
covapp 2129 2122 0 09:40 ? 00:00:00 /a01/software/apache-2.2.14-proxy/bin/httpd -k start
这个就是运行的,程序正常。
其三,
[test@station9 bin]$ sudo -u covapp /a01/software/apache/bin/apachectl start
(13)Permission denied: make_sock: could not bind to address [::]:180
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:180
no listening sockets available, shutting down
Unable to open logs
这是用另外一个用户来使用sudo命令企图执行启动命令,失败。
有没有linux高手来指导一下?或者帮忙搜索一下答案?google到现在都没google到个正确的解释。先拜谢了。
总结一下这个问题,希望对大家有帮助,楼上两位是对的。
一,apache最好使用root权限来运行,启动后它可能需要切换用户组啊,forks子进程等等一系列特权动作,一般用户没有经过相应的全面的权限设置,在这个机器里面可能满足不了这些需求。
二,apache配置文件里面的user、group不要设为root,会增加风险。
三,port:1024的端口号起,才可以被其他用户使用,否则会 报错Permissiondenied:make_sock
thankyouguys!
apache必须要以root身份启动服务版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。