【问题标题】:How can I avoid Phusion Passenger running as root?如何避免 Phusion Passenger 以 root 身份运行?
【发布时间】:2023-04-09 23:27:01
【问题描述】:

我今天更新到Passenger 5.1.11 并且有理由查看我的Apache 错误日志。

/var/log/apache2/error.log 我发现了这个条目(很多次):

警告:潜在的权限提升漏洞。乘客是 以 root 身份运行,并且可以更改部分乘客根路径 (/home/jack/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/passenger-5.1.11)非root用户:路径 “/home/jack/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/passenger-5.1.11”可以由用户“jack”(或以该方式运行的应用程序)修改 用户)。将路径的所有者更改为root,或避免运行 乘客作为根。

我正在运行 Debian 7 并将 Passenger 作为 gem 安装。我没有使用 sudo 运行任何安装命令。

如何避免乘客以 root 身份运行?我花了过去几个小时在谷歌上搜索这个,但空手而归。

【问题讨论】:

    标签: ruby-on-rails apache2 passenger


    【解决方案1】:

    Apache 以 root 身份启动,因此在加载 Passenger 模块时,它以 root 身份启动。在与 Nginx 或 Apache 集成的情况下,您会发现限制 gem 目录的权限比以非 root 用户身份运行网络服务器要容易得多。

    【讨论】:

    • 不幸的是,对于上述路径中的每个目录,我都会收到相同的警告,一直到我的主目录。更改我的主目录的所有者将是一个 PITA。这个警告有多严重?它可能会被忽略还是需要采取行动?
    • 严重程度取决于您的服务器,如果您只有一个应用程序,并且用户乘客运行您的应用程序,因为无权修改上述路径,那么您应该没问题。问题是当用户或守护程序有权修改这些路径时,他们可以实现权限提升。
    【解决方案2】:

    扩展已接受的答案:

    在与 Nginx 或 Apache 集成的情况下,您会发现限制 gem 目录的权限比以非 root 用户身份运行网络服务器要容易得多。

    来自https://www.w3.org/Daemon/User/Installation/PrivilegedPorts.html

    1024以下的TCP/IP端口号比较特殊,普通用户是不能在上面运行服务器的。

    这意味着如果你想运行一个网络服务器(通常在端口 80 或 443 上),你应该以 root 身份运行它。

    【讨论】:

      猜你喜欢
      • 2018-12-13
      • 2018-07-25
      • 2019-05-04
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多