我应该使用哪个用户运行 Web 服务器、redis 和 mongodb?

我应该使用哪个用户运行 Web 服务器、redis 和 mongodb?

此 VPS 上有三个用户:root、another_one、nobody。所有网络服务器文件、配置等。属于root.但是,我对运行事物有疑问。如果我使用 root 作为 Web 服务器,我可能会将系统暴露在安全漏洞中,而如果我尝试登录,nobody它会询问我一个我从未设置过且我也不知道的密码。我应该创建另一个用户吗?

现在我只确定 nginx:我以 root 身份运行它,它以无人身份生成进程。但是 Web 服务器和其他服务(例如 db 和 redis)呢?

注意:我应该提到 another_user 可以 sudo,所以它与 root 没有什么不同。

答案1

我总是与专门的用户一起运行服务。所以我会创建这些用户:

  • nginx
  • 蒙戈
  • 阿帕奇
  • mysql
  • 雷迪斯

您永远不应该以 root 身份运行实际服务!

通常,当使用发行版包管理器安装这些应用程序时,作为安装的一部分,将为每个服务自动创建一个用户。

我通常使用 CentOS/RHEL,当我安装 Apache 之类的东西时,会自动创建用户“apache”。 MySQL 和 Nginx 也是如此。

答案2

您犹豫是否以 root 身份运行服务是正确的。您最好为 Web 服务器创建单独的用户。阅读有关文件所有权和权限的讨论也没什么坏处https://serverfault.com/questions/357108/what-are-the-best-linux-permissions-to-use-for-my-website

相关内容