Recently I have been asked, if Apache can bind to port 80, while running under an unprivileged (non-root) account. Of course, any process can, using RBAC.
Apache HTTP Server has a directive in its configuration file, under which user account the process should run. But if you want it to listen on the default port TCP/80, the parent process must be running under root. Apache opens port 80 as root and then forks child processes, that drop their effective uid and gid according to httpd.conf. There are some drawbacks: some people... [More]