我正在用 C 语言编写一个 HTTP 服务器守护程序(这是有原因的),并使用 systemd 单元文件对其进行管理。
我正在重写一个 20 年前设计的应用程序,大约在 1995 年。他们使用的系统是 chroot,然后是 setuid,以及标准程序。
现在,在我之前的工作中,通常的政策是您永远不会以 root 身份运行任何进程。您为它创建一个用户/组并从那里运行。当然,系统确实以root身份运行了一些东西,但我们可以不以root身份完成所有业务逻辑处理。
现在对于 HTTP 守护进程,如果我不在应用程序中 chroot,我可以在没有 root 的情况下运行它。那么,应用程序永远不会以 root 身份运行不是更安全吗?
从一开始就以 mydaemon-user 身份运行它不是更安全吗?而不是从 root 启动它,chrooting,然后 setuid 到 mydaemon-user?