我有一个以root身份运行的进程(比如一个web服务器),我希望它以非root身份运行。
有没有办法将一个进程的所有权从根改为非特权用户?
我正在使用Debian机器。
谢谢!
没有任何明智的通用方法来改变正在运行的进程的所有权。 进程可以使用setuid(2)系统调用将他们自己的所有权从根改变为非root。 如果所讨论的Web服务器是Apache,那么可以通过编辑/ etc / apache2 / envvars来configuration它运行的用户并重新启动它。
因为Web服务器需要侦听端口80或443,它需要以root身份启动以绑定到这些端口。 如果程序本身不支持以非root用户身份运行,则不能强制执行。
另一种方法是让它在1024以上的端口上侦听,并使用iptablesredirectstream量,但是它非常“黑客”。