腾讯会议的无法运行是因为
现代的Linux系统,特别是像openSUSE这样注重安全的发行版,会使用SELinux等安全模块来实施严格的访问控制策略。
其中一项控制策略就是阻止程序将其内存堆栈(stack)同时设置为“可写”和“可执行”。这是一项旨在防止一类被称为“缓冲区溢出”(buffer overflow)攻击的安全措施。
不幸的是,一些应用程序,特别是像腾讯会议这样的闭源软件,其构建方式就要求必须获得这种“execstack”(执行堆äck)权限才能正常运行。
前面提供的命令,作用就是告诉SELinux放宽这一特定的规则,从而允许腾讯会议正确地加载其共享库文件 (libwemeet_base.so
)。
虽然和微信无法运行的问题属于同类问题,但是询问AI得到了不同的解答。
解决办法
临时开启
sudo setsebool selinuxuser_execstack 1
永久开启
sudo setsebool -P selinuxuser_execstack 1
添加了 -P (Persistent) 参数后,该设置会被写入到磁盘上的策略文件中。这意味着,即使您重启电脑,这个设置依然有效,所以它是永久性的。
如何恢复?
sudo setsebool selinuxuser_execstack 0
sudo setsebool -P selinuxuser_execstack 0
其他
查看当前系统的这个变量的值
sudo getsebool selinuxuser_execstack
yqh@192 /v/l/f/a/c/x/s/4/f/lib [127]> sudo getsebool selinuxuser_execstack
selinuxuser_execstack --> off