【问题标题】:Should I use another user than the root when installing NGiNX安装 NGiNX 时是否应该使用 root 用户以外的其他用户
【发布时间】:2011-11-09 19:06:11
【问题描述】:

我认为最好使用子用户来安装 NGiNX。这是真的吗?我正在考虑使用 NGiNX 来安装我的客户可以用于那里的网站的虚拟主机,我不希望他们对 NGiNX 有太多控制......

我使用的是 Ubuntu Linux 发行版。

提前感谢您提供任何帮助和/或提示。

【问题讨论】:

    标签: linux security nginx ubuntu-11.04 server-administration


    【解决方案1】:

    您打算如何安装这些应用程序?既然您说您使用的是 Ubuntu,那么我假设您将通过图形管理器或 apt-getaptitude 安装应用程序。

    如果您使用的是图形程序管理器,它会提示您输入密码;这在引擎盖下执行sudo

    如果您使用apt-getaptitude 或类似的东西,这些程序需要以root 身份运行才能安装。

    在上述两种情况下,软件包的安装脚本将(应该)处理您正在安装的程序正常运行所必需的任何与用户相关的问题。例如,当我执行apt-get install jenkins 时,安装脚本会自动为我创建一个jenkins 用户,并且我的Jenkins CI 服务器会自动以jenkins 用户身份运行。

    当然,如果您手动编译所有这些程序,那么所有的赌注都没有了,您需要弄清楚如何最好地自己完成所有这些工作。当然,如果你手动编译这些程序来安装它们,我不得不质疑你为什么首先使用 Ubuntu。使用具有健全的包管理功能的 Linux 发行版的最佳部分之一实际上是使用所说的包管理! (注意:这里所说的,我的意思是任何基于 Debian 的东西;而且我知道 Red Hat 的 yum 提供了非常相似的功能,但自 2003 年左右以来我没有使用过任何 RedHat。)

    【讨论】:

    • 我正在使用包管理器。我实际上是按照 NGiNX 说明使用 apt-get 安装 NGiNX 的。但是我正在阅读的书建议我使用子用户。这就是我问的原因。也因为我计划拥有 VHost,以便我的客户可以有自己的空间来托管那里的网站。我使用的是 RackSpace Cloud,所以默认情况下我使用的是 root。
    • 我按照页面底部的说明进行操作:nginx.org/en/download.html,一切正常……我只是担心安全问题。
    • 如果您通过包管理器安装,您可能无需担心任何事情。您可以通过发出命令 ps aux | grep nginx(假设 nginx 是命令的名称;它可能是 httpd 或其他名称;我不使用 nginx)并检查来检查您的 nginx 服务器正在以哪个用户身份运行输出。从我运行 apache 的服务器:ps aux | grep apache ==> www-data 17053 0.0 0.5 217736 11512 ? S 12:13 0:00 /usr/sbin/apache2 -k start 因此,我的 Apache 服务器以 www-data 用户身份运行。
    【解决方案2】:

    您不希望进程拥有超出其需要的访问权限。所以,是的,您应该使用除 root 之外的用户——具有读取所需文件所需的最低权限的用户。通常这涉及到专门为该任务创建一个新的 nginx(或 www 或类似的)用户。

    【讨论】:

    • 我应该为安装 NGiNX 的用户使用哪些类型的权限?
    • 我是否应该对其他应用程序也这样做,例如:git、make、gcc、php5、cassandra...?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 2013-08-27
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    • 2020-11-16
    相关资源
    最近更新 更多