Big Sur系统下通过Homebrew安装Passenger后出现潜在权限提升漏洞警告的技术咨询
首先得明确:这个权限提升漏洞警告绝对值得重视,不是可以忽略的小问题——Passenger以root身份运行,但它的安装路径(/opt/homebrew及子目录)属于普通用户rich,意味着任何能访问这台机器的非root用户(比如rich自己,或者其他有写权限的用户)都可以修改Passenger的核心文件,当Passenger以root执行这些文件时,就能获得root权限,风险很高。
下面逐个解答你的问题:
是否需要对此问题担忧?
必须担忧。如果你的服务器是多用户环境,或者暴露在公网中,这个漏洞可能被恶意利用。即使是个人开发环境,也建议修复——养成良好的安全习惯总是没错的。
是否需要修改相关配置?
当然需要,这里有几个可行的方案,按推荐优先级排序:
方案1:让Passenger以普通用户身份运行
这是最稳妥的方案,既不破坏Homebrew的正常使用,又彻底解决安全风险。
- 如果你用的是Nginx:找到你的Nginx配置文件(通常在
/opt/homebrew/etc/nginx/nginx.conf或者站点专属配置里),添加一行配置:
然后重启Nginx:passenger_user rich;brew services restart nginx - 如果你用的是Apache:在
httpd.conf或Passenger相关配置文件中添加:
重启Apache服务即可。PassengerUser rich
方案2:调整Homebrew路径权限(不推荐)
你可以修改/opt/homebrew及子目录的权限,限制非root用户的写权限,但这样会导致Homebrew无法正常更新或安装软件(因为Homebrew需要普通用户有写权限),所以这个方案只适合特殊场景。
方案3:手动安装Passenger到root专属路径(麻烦)
放弃Homebrew管理,手动把Passenger安装到/usr/local或其他root拥有的路径,但这样后续升级、维护都会很麻烦,不推荐。
该警告是否会自行消失?
不会。这个警告是Passenger的安全检测机制触发的,只要路径权限问题没解决,每次启动Passenger都会弹出这个提示——系统默认的Homebrew路径权限不会自动改变。
额外补充:关于Nginx的worker_connections警告
你日志里的1024 worker_connections exceed open file resource limit: 256是Nginx的警告,和Passenger无关。可以通过调整Nginx的文件描述符限制解决:
在nginx.conf中添加:
worker_rlimit_nofile 1024;
重启Nginx后这个警告就会消失。
内容的提问来源于stack exchange,提问作者Rich_F

