如何在没有 root 权限的情况下(以其他用户身份)在启动时运行 Web 服务器?我可以在 rc.local 中添加它,但它是在 root 用户下运行的。
答案1
我如何在没有 root 权限的情况下(作为另一个用户)在启动时运行 Web 服务器?
为什么?你想达到什么目的?
Apache 成为守护进程并在端口上监听后做的第一件事就是将 UID 设置为配置文件中定义的用户 - 即它不以 root 权限运行。
无法启动监听 1024 以下端口的守护进程除非您是 root - 但完全可以启动它来监听,比如说端口 8000,也完全可以设置 iptables 来将端口 80 的请求代理到端口 8000 - 但只有 root 进程可以将 setuid 设置为不同的 uid - 所以您需要更改您的 Apache 配置,以便它不调用 setuid,或者只调用 setuid 到当前 uid。
如果您担心安全问题,那么在尝试修复实际上不存在的安全漏洞之前,您还应该考虑做很多其他事情。
C。
答案2
在 httpd 配置文件中搜索以下部分:
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon
并将“守护进程”用户和组更改为所需的用户名。