致命:在Debian 8,9上使用Electron 7.1.3.不支持以root身份运行--no-sandbox

ev7lccsx  于 8个月前  发布在  Electron
关注(0)|答案(3)|浏览(222)

我安装了Electron 7.1.3,当我尝试运行应用程序时出现此错误:
FATAL:atom_main_delegate.cc(211)]不支持在没有--no-sandbox的情况下以root身份运行。请参阅https://crbug.com/638180
当我使用Debian 8或9时会发生这种情况。我在 Windows 上使用它,运行没有问题。我正在搜索有关此问题的信息,但我没有找到Electron和Debian的具体信息,只能运行:electron --no-sandbox
如果有人知道如何解决这个问题,我想在这里使用Debian。

2guxujil

2guxujil1#

当我用sudo运行我的电子应用程序时,我遇到了类似的问题:

sudo ./MyElectronApp

字符串

  • [5612:0301/101026.813638:FATAL:electron_main_delegate.cc(211)]不支持在没有--no-sandbox的情况下以root身份运行。请参阅https://crbug.com/638180。*

所以为了添加 --no-sandbox 参数,我这样做了:

sudo ./MyElectronApp --no-sandbox


而且成功了!!:)
我以为我必须用参数来构建我的应用程序,但它不起作用。

ymdaylpp

ymdaylpp2#

引用Process Sandboxing来解释沙箱的作用:
Chromium的一个关键安全特性是进程可以在沙箱中执行。沙箱通过限制对大多数系统资源的访问来限制恶意代码可能造成的危害-沙箱进程只能自由使用CPU周期和内存。为了执行需要额外权限的操作,沙箱进程使用专用的通信通道将任务委托给更有特权的进程。
在Chromium中,沙箱应用于除主进程之外的大多数进程。这包括渲染器进程,以及音频服务,GPU服务和网络服务等实用程序进程。
并引用禁用Chromium的沙箱(仅测试):
您还可以使用--no-sandbox CLI标志完全禁用Chromium的沙箱,这将禁用所有进程(包括实用程序进程)的沙箱。我们强烈建议您仅将此标志用于测试目的,而不要在生产中使用。
要禁用它,请运行<your-app-name> --no-sandbox

1cklez4t

1cklez4t3#

对我来说,我使用nestjs和docker来构建应用程序图像。
const browser = await puppeteer.launch({ headless:'new',args:'--no-sandbox'],});
它解决了

相关问题