今天打开skype
发现有新的版本可以更新,于是更新了新版,然后重启发现出现问题,没有任何界面显示,于是开始了问题的排查和解决。
首先查找日志
系统为manjaro
,Skype
的启动文件位于usr/bin/skypeforlinux
打开文件
#!/bin/sh
SCRIPT=$(readlink -f "$0")
USR_DIRECTORY=$(readlink -f $(dirname $SCRIPT)/..)
SKYPE_PATH="$USR_DIRECTORY/share/skypeforlinux/skypeforlinux"
SKYPE_LOGS="$HOME/.config/skypeforlinux/logs"
mkdir -p $SKYPE_LOGS
nohup "$SKYPE_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$SKYPE_LOGS/skype-startup.log" 2>&1 &
日志位于$HOME/.config/skypeforlinux/logs
查看日志
[20127:0820/153946.982187: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 /usr/share/skypeforlinux/chrome-sandbox is owned by root and has mode 4755.
这里可以看出主要问题是chrome-sandbox
的权限问题
修改权限
文件位于/usr/share/skypeforlinux/chrome-sandbox
sudo chmod 4755 chrome-sandbox #注意该文件的位置
这里说明一下4755
权限问题
chmod 4755与chmod 755对比多了附加权限值4,这个4表示其他用户执行文件时,具有与所有者同样的权限(设置了SUID)。
为什么要设置4755 而不是 755?
假设netlogin是root用户创建的一个上网认证程序,如果其他用户要上网也要用到这个程序,那就需要root用户运行chmod 755 netlogin命令使其他用户也能运行netlogin。但假如netlogin执行时需要访问一些只有root用户才有权访问的文件,那么其他用户执行netlogin时可能因为权限不够还是不能上网。这种情况下,就可以用 chmod 4755 netlogin 设置其他用户在执行netlogin也有root用户的权限,从而顺利上网。
————————————————
版权声明:本文为CSDN博主「林20」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013197629/article/details/73608613
再次启动skype
skypeforlinux