如何避免 Phusion Passenger 以 root 身份运行?

问题描述 投票:0回答:3

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

/var/log/apache2/error.log
我找到了这个条目(多次):

警告:潜在的特权升级漏洞。乘客是 以 root 身份运行,部分 passenger 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 运行任何安装命令。

如何避免 Passenger 以 root 身份运行?我花了最后几个小时谷歌搜索这个,但空手而归。

ruby-on-rails apache2 passenger
3个回答
3
投票

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


0
投票

扩展已接受的答案:

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

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

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

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


0
投票

这是唯一不涉及 chown 一切的真正解决方案。 将以下内容放入您的 website.conf 中。也可以在 apache2.conf 中工作

PassengerUserSwitching off
PassengerDefaultUser "your-user-name"

现在检查你的错误日志。应该不会再有错误了。

我不明白为什么。 乘客文档将此称为沙盒。不确定还会有什么其他后果。

解决方案来自:

https://sun-blog.site/passenger%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%A8%A9%E9%99%90%E3%81%AE% E8%AD%A6%E5%91%8A/
https://blog.masterka.net/archives/1828
通过谷歌

© www.soinside.com 2019 - 2024. All rights reserved.