如何在没有 root 权限的情况下在 ubuntu 服务器中自动启动 web 服务器?

如何在没有 root 权限的情况下在 ubuntu 服务器中自动启动 web 服务器?

如何在没有 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

并将“守护进程”用户和组更改为所需的用户名。

相关内容