AlmaLinux9+cPanel环境下非root用户运行Headless Chrome/Puppeteer失败求助
非root cPanel用户在CloudLinux LVE环境下运行Headless Chrome/Puppeteer失败问题
环境信息
- AWS EC2 VPS(KVM虚拟化)
- AlmaLinux 9(最新版)
- cPanel + CloudLinux + LVE(测试时未启用CageFS)
- SELinux:已禁用
- Google Chrome 137(Testing版本,支持本地/系统级安装)
- Puppeteer 22.8.2
- Node.js v20.x
可正常运行场景
- root用户执行以下命令可正常输出版本:
google-chrome-stable --headless --no-sandbox ... --version
异常场景
- cPanel用户(无论是否启用CageFS)执行本地Chrome命令报错
Trace/breakpoint trap (core dumped):/home/nexus/nodeapps/node/chrome/linux-137.0.7151.70/chrome-linux64/chrome --headless --no-sandbox ... --version - 使用Puppeteer捆绑的Chromium时,提示「无法启动浏览器进程」
已尝试的排查操作
- 为目标用户禁用CageFS:
cagefsctl --disable nexus - 确认SELinux状态:
getenforce返回Disabled - 调整ulimit参数,将所有资源限制设为高值/无限制(最大文件数、进程数、内存等)
- 通过
ldd检查Chrome二进制文件,确认所有依赖库均存在(无「not found」错误) - 将LVE用户资源限制调至最大值
- 确保home目录及
.config目录权限配置正确 - 测试多个版本的Google Chrome和Chromium
- 分别测试系统级和用户本地安装的Chrome/Puppeteer
- 测试启用/禁用所有沙箱相关启动参数
- 验证root用户始终可正常运行,非root用户始终失败
- Node.js脚本和直接运行Chrome二进制文件时,非root用户均出现相同崩溃情况
关键系统信息
uname -a:(待补充输出)cat /etc/redhat-release:AlmaLinux 9.xvirt-what:kvm, awsgetenforce:Disabledulimit -a:所有限制已设为高值/无限制ldd /home/nexus/nodeapps/node/chrome/linux-137.0.7151.70/chrome-linux64/chrome:所有依赖库均存在- 未发现明显资源或权限问题
怀疑方向
问题可能源于用户命名空间、内核或LVE/PAM加固设置,导致Chrome/Chromium即使禁用沙箱,仍无法以非root用户启动;root用户不受该限制影响。目前dmesg/journal中未发现相关拦截日志,已尝试所有Chrome/Puppeteer官方及社区常见解决方案。
求助问题
- 如何在此环境下让非root用户正常运行Headless Chrome或Puppeteer?
- 还有哪些系统级、内核或CloudLinux/cPanel配置会阻止非root用户运行Headless Chromium/Chrome(即使禁用所有沙箱且无明显用户限制)?
- AlmaLinux 9 + CloudLinux LVE/cPanel环境下是否有已知修复方案?
欢迎提供任何帮助、建议或进一步的调试思路!
内容的提问来源于stack exchange,提问作者Muhammad Noman
相关产品推荐
相关产品推荐

