如何在Linux中以根用户身份运行Google Chrome


10

当我想以根用户身份运行google chrome时,出现以下错误消息:

Google Chrome无法以root用户身份运行

消息正文为:

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

谁能帮我?


1
尽管以root身份运行此应用程序不是一件好事,但我将解释该方法。
M0εiπ

Answers:


7

要以根用户身份运行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中以根用户身份运行Google chrome-MoeinFatehi


3
为了清楚起见,此处的正确答案是“您不要”。以root身份运行图形应用程序并不是一个好主意。
HalosGhost 2014年

1
好吧,我听说您不应该以root用户身份运行图形应用程序,所以我决定这样做,只是为了找出原因。我计划这样做,直到发现为止。现在是14年前。
Thorsten Staerk 2014年

2
您应该阅读最小特权原则。
HalosGhost

2
我最终也不得不使用--no-sandbox。yolo
Bryce Guinta '16

4

现在,您无法在更新版本上以root用户身份运行google-chrome,而要以标准用户身份运行Chrome浏览器(以root身份登录)

打开终端并输入:

adduser -u chromeuser 要么 useradd -m chromeuser

要运行google chrome,请使用命令:

gksu -u chromeuser google-chrome 要么 sux chromeuser google-chrome

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


也使用现有用户帐户为我工作:gksu -u gv google-chrome-stable。虽然我在航站楼收到了一些错误信息,但它确实有效。
乔治·瓦西里乌

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
  #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此方法有效,但收到了一些错误消息终奌站)。


1
工作完美
Ewall Tester

2

运行以下命令并打开google-chrome,它将起作用

sed -i -e 's@Exec=/usr/bin/google-chrome-stable %U@Exec=/usr/bin/google-chrome-stable %U --no-sandbox@g' /usr/share/applications/google-chrome.desktop 

0

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

在此处输入图片说明

它会为我工作。


这样做的实际后果是什么?
库萨兰达

与使用根帐户的后果相同
SAID

-1

我已经尝试了所有提供的解决方案,所以我认为这是最好的。

须藤chmod -R 777 /home/user_name/.config/google-chrome

只需运行命令,您无需执行任何操作。


您好Abhinav。您能否解释一下如何解决以root身份运行Chrome的问题。
roaima

-2

这是一个远景,但是尝试这个

须藤chmod -R 777 /home/user_name/.config/google-chrome

不再需要配置沙箱


使所有人都能读取所有Chrome配置有什么帮助?
Kusalananda

每次如果'google-chrome --no-sandbox'不起作用,问题都会有所不同,通常需要sudo,因为它没有/home/usr_name/.config/google-chrome文件夹或其他一些权限目录。
的Piyush Pattaiya

请注意,root用户不受文件权限或文件所有权的限制。
Kusalananda
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.