我想知道linux上的非root用户(我使用的是openSUSE)是否可以在不使用sudo命令的情况下运行apache.考虑到用户与apache(wwwrun)位于同一组中.
提前致谢.
您可以像任何用户一样运行Apache.只需确保将其设置为仅使用允许的资源(目录,文件,最重要的是监听非特权端口).
要让它出现在HTTP的标准端口80(具有特权)上,您必须以root身份设置重定向到真正的Apache服务器.最简单的方法可能是使用iptables.例如,如果您的Apache服务器正在侦听端口8080:
iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -j REDIRECT --to-port 8080
如果你不能像这样配置服务器(或让你的系统管理员为所有人做一次),你将不得不使用非特权端口(类似的东西Listen 8080
)并使用看起来像http://www.example的URL访问它. COM:8080 /
如果您安装了sudo,则可以创建一个文件:/etc/suduers.d/apache2reload,其中包含以下内容:
username ALL=NOPASSWD:/usr/bin/service apache2 reload
简答:不
原因是只有root才能绑定1024以下的端口.
答案很长:查看http://www.debian-administration.org/articles/386
一旦你克服了端口的问题,我认为不会有任何麻烦.请记住,运行apache的用户需要对日志文件以及其他一些文件进行写访问.
但是,如果你在没有sudo的情况下运行它,那么spawner可能无法更改用户,因此apache将以用户启动它而不是apache用户的方式运行.
但是你不想运行sudo的原因是什么?它只是以root身份运行的spawner进程,其余的都在apache用户下运行.