问题产生

我遇到的情况是在安装网易云音乐Linux版和PicGo图床的时候,打开无反应,后来使用命令行运行,出现了下面的报错信息:

picgo:

[8898:0420/011642.495795:FATAL:setuid_sandbox_host.cc(157)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /tmp/.mount_PicGo-s7aX7M/chrome-sandbox is owned by root and has mode 4755.
1

部分解决

后来网易云音乐的问题成功解决了,只要将给出的chrome-sandbox文件给予root用户并赋予4755权限,然后重新打开安装即可。

sudo chown root <path_to_marktext_dir>/chrome-sandbox && sudo chmod 4755 <path_to_marktext_dir>/chrome-sandbox
1

其中<path_to_marktext_dir>即报错信息中给出的chrome-sandbox文件位置,在上面的报错信息中为/tmp/.mount_PicGo-s7aX7M/chrome-sandbox

但这并不能解决PicGo的问题,因为PicGo的AppImage如果执行不成功,会自动将chrome-sandbox文件删除,并且第二次产生的文件夹名称会发生改变,因为完全无法进行授权操作。

后来去找了很多资料,确定该问题为使用Electron给软件打包时产生的错误,是Linux内核的user_namespaces没有自动打开的问题。

解决方案

解决的办法有四种,我最推荐第四种解决方法,一劳永逸。

  1. 启用用户名称空间: sudo sysctl kernel.unprivileged_userns_clone=1,但每次开机都要运行该命令。
  2. 给报错信息给出的文件授权:sudo chown root /chrome-sandbox && sudo chmod 4755 /chrome-sandbox,即解决网易云音乐该问题时的操作,但不适用于picgo。
  3. 运行的时候加上免沙箱命令:--no-sandbox
  4. 开机时自启动用户名称空间:echo 'kernel.unprivileged_userns_clone=1' > /etc/sysctl.d/userns.conf

该命令只适用于Debian/Ubuntu系列Linux发行版,未测试其他发行版。


文章来源:

https://blog.csdn.net/qq_42239554/article/details/105640909