testtraveler

博客园 首页 新随笔 联系 订阅 管理

前言

众所不周知,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


posted on 2025-03-10 11:16  testtraveler  阅读(137)  评论(0)    收藏  举报