我已经使用 Linux 多年了,但我需要一些关于操作系统工作原理的澄清,但出于安全考虑,我确实需要澄清。
我在工作中遇到这样的情况:有人将 LAMP 堆栈的一部分安装到我们新的 CentOS 服务器上。他们已经使用 root 用户安装了所有内容,如果我没有记错的话,这意味着所有这些程序(守护程序等)都将使用 root 用户帐户运行。根据我的经验,我相信这样做是一个坏主意。
我见过一些关于为每个进程创建用户的内容,例如为 apache、mysql、php 创建用户。这是正确的做法吗?如果是这样,我如何创建这些用户并为其提供所需的权限?
我是否要创建一个用户帐户,然后使用该用户帐户安装软件?
我单独查阅了这些问题,试图获得一些见解,但我觉得我要么遗漏了一些东西,要么误解了一些东西。对我来说最重要的是我要安全地进行设置,这样我们就不会陷入糟糕的境地。我真的可以在这件事上使用一些指导。如果有人可以对我提出的问题进行澄清,或者有一些我可以使用的资源,那就太棒了。
答案1
“以 root 用户身份安装”不一定是坏事,特别是如果他们使用包管理器安装的话。例如,通过 yum 在 CentOS 上安装 mysql,将创建一个 mysql 用户,然后 mysql 进程通常以该用户身份运行。
对于开始,请参阅此:https://serverfault.com/questions/212269/tips-for-secure-a-lamp-server。如果您有具体问题,请在此处或 serverfault.com 上的新问题中发布。
答案2
在大多数系统(包括 CentOS)上,您必须以 root 用户身份安装,才能有权将程序和文件写入正确的位置。
这并不意味着安装后的程序就以 root 身份运行。大多数不会,有些(例如 Apache)会以特殊用户身份运行。但为了启动这些程序并获取受限资源(例如端口 80 和 443),这些程序必须由 root 启动,然后更改为专用的非 root 用户。