前言
众所不周知,ubuntu的snap有些让人无语凝噎的问题,比方说如果你在Ubuntu 24.04 LTS通过它安装vscode,恭喜你,你无法在vscode中输入中文,缘由不明,又或者对于stretchly,对不起,没有开机自动启动,即使你勾选了它,反正就有些奇奇怪怪的问题。
所以,我吃了闷亏之后,就果断地选择,宁愿从官网下载安装,也不要用这个snap。于是遇到了奇怪的问题,我安装好的draw.io和stretchly,每次试图打开就会报错,报错是一个莫名奇妙的read unknown VMA的问题。
我觉得这个问题应该是比较抽象的,查阅半天也没有得到答案,一直跟我的问题毫无关联(即使我用上英文检索)。
好的,于是秉持着看日志的良好习惯,我终于找到了合适的解法,写下这篇blog记载,以免将来又遇到问题。
Note:
- 笔者环境为
Ubuntu 24.04 LTS
目录
解决过程
图形化的查询方式是有的,比如你可以在你的ubuntu上找到一个叫Logs的app,点开它就是心心念念的日志。
既然说软件启动(比方说你现在可以尝试启动一下stretchly)出了问题,那么就可以去看看Applications
在里面关注到下面这样的信息:
[5336:0302/100901.150219:FATAL:setuid_sandbox_host.cc(163)] 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 /opt/Stretchly/chrome-sandbox is owned by root and has mode 4755.
大意就是/opt/Stretchly/chrome-sandbox 文件的权限和所有权配置不正确。权限必须是4755以及所有者必须是root才正确,不然SUID sandbox的配置不正确就无法启动。
检查一下权限:
ls -l /opt/Stretchly/chrome-sandbox
-rwxr-xr-x 1 root root 38224 Jan 19 17:45 /opt/Stretchly/chrome-sandbox
好的,权限不对,于是我们就可以通过下面的命令搞定它:
sudo chmod 4755 /opt/Stretchly/chrome-sandbox
再检查一下权限,就可以发现正常了,尝试启动,启动成功!
tips: 4755 权限表示设置了 SUID(Set User ID)权限。当程序运行时,它会以文件所有者(这里是 root)的权限运行,而不是以启动程序的用户权限运行。这是沙箱机制的一部分,用于提高安全性。SUID 权限,是一个特殊权限,位于用户权限部分的最前面,用数字 4 表示。
当然,既然说这个沙箱那么麻烦,我们也可以选择在启动软件(用终端,或者.desktop的Exec)时给它加上一个 --no-sandbox,虽然,禁用沙箱可能会降低系统的安全性。
参考资料
None
浙公网安备 33010602011771号