如何在 Linux 中以 root 身份运行 google chrome

如何在 Linux 中以 root 身份运行 google chrome

当我想以 root 身份运行 google chrome 时,会出现一条标题如下的错误消息:

谷歌浏览器无法以 root 身份运行

消息正文是:

要以 root 身份运行,您必须指定备用 --user-data-dir 来存储配置文件信息。

谁能帮我?

答案1

要以 root 身份运行 google chrome,请按照下列步骤操作:

  1. 在您最喜欢的编辑器中打开google-chrome(替换$EDITOR为您最喜欢的):

    $EDITOR $(which google-chrome)
    
  2. 添加到--user-data-dir文件的最后。

    我的文件如下所示:

    exec -a "$0" "$HERE/chrome"  "$PROFILE_DIRECTORY_FLAG" \   "$@"
    --user-data-dir
    
  3. 保存并关闭编辑器。

你完成了。好好享受 :)


如果你想看视频教程,可以查看我的博文:

如何在 Linux 中以 root 身份运行 google chrome - MoeinFatehi

答案2

现在,您无法在更新版本上以根用户身份运行 google-chrome,要以标准用户身份运行 Google Chrome(以根用户身份登录时)

打开终端并输入:

adduser -u chromeuser或者useradd -m chromeuser

要运行谷歌浏览器,请使用命令:

gksu -u chromeuser google-chrome或者sux chromeuser google-chrome

如果您不想从终端运行它,请在任务栏中添加 chrome,然后右键单击它,选择属性并在命令参数中添加上述命令。

答案3

对于那些可能仍在谷歌搜索 2016 年 12 月 - XFCE 和 Debian 8.5 下的 Google Chrome 版本 54.0.2840.90 64 位的人:

情况 1:Chrome 根本无法启动
在我的设置中,只需在终端中运行,google-chrome-stable我就立即在终端中收到错误illegal instruction。无帧、无屏幕消隐、无黑窗。只是一个粗鲁的控制台错误。使用--no-sandbox命令行选项可以消除此错误。

情况 2:即使使用 --no-sandbox 选项,Chrome 仍然拒绝打开
这不是我的情况,因为 --no-sandbox 就足够了,但如果您遇到这种行为,您可以尝试在调用 chrome 时禁用所有功能,例如:

google-chrome-stable --disable-gpu --disable-extensions --disable-d3d11 --disable-local-storage --disable-notifications --disable-offne-pages --disable-plugin-power-saver --disable-plugins-discovery --disable-sync --disable-translate --disable-webgl --no-experiments --no-sandbox

然后您可以逐步启用选项,直到确定哪个选项损坏。
PS:可以找到所有 CLI 标志/参数这里

情况 3:Please start Google Chrome as a normal user.To run as root you must specify an alternate --user-data-dir for storage of profile information出现消息。

对我有用的解决方案:转到/opt/google/chrome并打开文件google-chrome,该文件实际上是一个 bash 脚本。

在脚本末尾找到该部分

if [[ -n "$CHROME_USER_DATA_DIR" ]]; then
  # Note: exec -a below is a bashism.
  exec -a "$0" "$HERE/chrome"  \
    --user-data-dir="$CHROME_USER_DATA_DIR" "$@"
else
  exec -a "$0" "$HERE/chrome"  "$@"
fi

并像这样更改 else 部分:

else
  #exec -a "$0" "$HERE/chrome"  "$@"
  exec -a "$0" "$HERE/chrome" "$@" --user-data-dir="$HOME"
fi

保存,然后运行google-chrome-stable --no-sandbox
我起身去冲浪。

对于更复杂的解决方案,我个人应用了一种用户检查,以避免以普通用户身份运行 chrome 时可能出现的干扰:

else
    if [ "$USER" = "root" ]  || [ "$LOGNAME" = "root" ];then 
        exec -a "$0" "$HERE/chrome" "$@" --user-data-dir="$HOME"
    else
        exec -a "$0" "$HERE/chrome"  "$@"
    fi

另一个解决方法:
您无法按照上面的说明修改 google-chrome 文件,您可以按照 @tzafar 的建议创建新用户或使用现有的普通用户帐户启动 chrome :(gksu -u user google-chrome-stable这有效,但在终端)。

答案4

要以 root 身份运行 google chrome,请添加此参数“--no-sandbox”

在此输入图像描述

它对我有用。

相关内容