Puppeteer在Linux上的沙盒:没有可用的沙盒。

18

我安装了Puppeteer来生成pdf /缩略图,但我无法激活和配置Chrome Linux沙盒。总是出现相同的错误消息:

(node:46) UnhandledPromiseRejectionWarning: Error: Failed to launch chrome! [1208/055442.253403:FATAL:zygote_host_impl_linux.cc(116)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/master/docs/linux_suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.

我按照官方文档中提到的步骤进行操作,但没有成功。

# cd to the downloaded instance
cd <project-dir-path>/node_modules/puppeteer/.local-chromium/linux-<revision>/chrome-linux/
sudo chown root:root chrome_sandbox
sudo chmod 4755 chrome_sandbox
# copy sandbox executable to a shared location
sudo cp -p chrome_sandbox /usr/local/sbin/chrome-devel-sandbox
# export CHROME_DEVEL_SANDBOX env variable
export CHROME_DEVEL_SANDBOX=/usr/local/sbin/chrome-devel-sandbox
2个回答

10

尝试使用

sudo sysctl -w kernel.unprivileged_userns_clone=1

它将允许您以非特权用户的身份访问Chromium的沙盒。这是暂时的,只在重新启动期间有效。


3
这篇文章建议保持关闭此重要的安全窗口。有没有其他运行无头Chrome的方法? - rgammans
@rgammans OP 可能走对了路,但在 cp 之后失去了 setuid 位,请看下面我的回答。 - Skippy le Grand Gourou

0

你可能因为 cp 命令而设置了错误的 setuid 位:

$ sudo touch orig
$ ls -l orig
-rw-r--r-- 1 root root 0 févr. 11 23:31 orig
$ sudo chmod 4755 orig
$ ls -l orig
-rwsr-xr-x 1 root root 0 févr. 11 23:31 orig
$ sudo cp orig new
$ ls -l new
-rwxr-xr-x 1 root root 0 févr. 11 23:31 new

setuid 位(第四个字符)在 cp 后从 s 更改为 x


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接