前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 以root用户登录后无法打开chrome谷歌浏览器

Linux 以root用户登录后无法打开chrome谷歌浏览器

作者头像
一个会写诗的程序员
发布2022-09-30 08:09:04
5.9K0
发布2022-09-30 08:09:04
举报

Linux 以root用户登录后无法打开chrome谷歌浏览器

环境

代码语言:javascript
复制
$ uname -a
Linux ai 5.15.0-48-generic #54-Ubuntu SMP Fri Aug 26 13:26:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

复现

在Ubuntu系统中点击 chrome 图标打开chrome浏览器

代码语言:javascript
复制
$ /snap/bin/chromium
[46205:46205:0929/030240.832467:ERROR:zygote_host_impl_linux.cc(90)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.

$ google-chrome


$ google-chrome-stable 

正在现有的浏览器会话中打开。
[0929/030013.219204:ERROR:nacl_helper_linux.cc(315)] NaCl helper process running without a sandbox!
Most likely you need to configure your SUID sandbox correctly

BUG

提示不能以root用户打开

原因

chrome谷歌浏览器默认设置不能以root权限打开,主要是为了软件安全考虑,防止root权限进行破坏操作

解决

通过修改chrome的启动项配置可解决此问题

操作步骤

①使用以下命令打开“/usr/bin/google-chrome”文件

代码语言:javascript
复制
sudo gedit /usr/bin/google-chrome

②修改配置文件内容,如下所示

代码语言:javascript
复制
exec -a "$0" "$HERE/chrome" "$@"

修改为

代码语言:javascript
复制
exec -a "$0" "$HERE/chrome" "$@" --user-data-dir --no-sandbox
which chromium-browser /usr/bin/chromium-browser ┬─[root@ai:~]─[03时03分25秒] │ 1 42117 0% 已终止 ./chrome.sh ╰─>
which chromium-browser /usr/bin/chromium-browser ┬─[root@ai:~]─[03时03分25秒] │ 1 42117 0% 已终止 ./chrome.sh ╰─>

gedit /usr/bin/chromium-browser

代码语言:javascript
复制
#!/bin/sh
if ! [ -x /snap/bin/chromium ]; then
    echo "" >&2
    echo "Command '$0' requires the chromium snap to be installed." >&2
    echo "Please install it with:" >&2
    echo "" >&2
    echo "snap install chromium" >&2
    echo "" >&2
    exit 1
fi

if [ "$(xdg-settings get default-web-browser)" = "chromium-browser.desktop" ]; then
  xdg-settings set default-web-browser chromium_chromium.desktop
fi

# GNOME Shell
OLD="chromium-browser.desktop"
NEW="chromium_chromium.desktop"
FAVS=$(gsettings get org.gnome.shell favorite-apps 2> /dev/null)
if echo "$FAVS" | grep -q "'$OLD'"; then
  NEWFAVS=$(echo $FAVS | sed -e "s#'$OLD'#'$NEW'#")
  gsettings set org.gnome.shell favorite-apps "$NEWFAVS"
fi

# Unity
OLD="application://chromium-browser.desktop"
NEW="application://chromium_chromium.desktop"
FAVS=$(gsettings get com.canonical.Unity.Launcher favorites 2> /dev/null)
if echo "$FAVS" | grep -q "'$OLD'"; then
  NEWFAVS=$(echo $FAVS | sed -e "s#'$OLD'#'$NEW'#")
  gsettings set com.canonical.Unity.Launcher favorites "$NEWFAVS"
fi

# MATE
OLD="/usr/share/applications/chromium-browser.desktop"
NEW="/var/lib/snapd/desktop/applications/chromium_chromium.desktop"
OBJECTS=$(gsettings get org.mate.panel object-id-list 2> /dev/null)
for object in $OBJECTS; do
  object=$(echo $object | cut -d\' -f2)
  launcher=$(gsettings get org.mate.panel.object:/org/mate/panel/objects/$object/ launcher-location)
  if [ "$launcher" = "'$OLD'" ]; then
    gsettings set org.mate.panel.object:/org/mate/panel/objects/$object/ launcher-location "'$NEW'"
  fi
done

# KDE Plasma
if which qdbus > /dev/null; then
  SCRIPT="$(cat <<-EOF
    for (var i = 0; i < panelIds.length; ++i) {
      var panel = panelById(panelIds[i]);
      var widgets = panel.widgets();
      for (var j = 0; j < widgets.length; ++j) {
        var widget = widgets[j];
        if (widget.type == "org.kde.plasma.taskmanager") {
          widget.currentConfigGroup = "General";
          var launchers = widget.readConfig("launchers");
          if (launchers.includes("chromium-browser.desktop")) {
            widget.writeConfig("launchers", launchers.replace(/chromium-browser.desktop/g, "chromium_chromium.desktop"));
          }
        }
      }
    }
EOF
  )"
  qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript "$SCRIPT" 2> /dev/null
fi

# TODO: handle other desktop environments

exec /snap/bin/chromium "$@" --user-data-dir --no-sandbox
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档