![我应该使用哪个用户运行 Web 服务器、redis 和 mongodb?](https://linux22.com/image/45173/%E6%88%91%E5%BA%94%E8%AF%A5%E4%BD%BF%E7%94%A8%E5%93%AA%E4%B8%AA%E7%94%A8%E6%88%B7%E8%BF%90%E8%A1%8C%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%81redis%20%E5%92%8C%20mongodb%EF%BC%9F.png)
此 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