web-dev-qa-db-ja.com

Linuxでrootとしてgoogle chromeを実行する方法

google chromeをrootとして実行すると、次のタイトルのエラーメッセージが表示されます。

Google chromeはrootとして実行できません

メッセージの本文は次のとおりです。

rootとして実行するには、プロファイル情報を保存するための代替--user-data-dirを指定する必要があります。

誰かが私を助けてくれますか?

10
cipher

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. エディターを保存して閉じます。

完了です。楽しめ :)


ビデオチュートリアルを見たい場合は、私のブログ投稿をチェックできます:

googleを実行する方法chrome-MoeinFatehi

7
M0εiπ

更新されたバージョンでルートユーザーとしてgoogle-chromeを実行できないようになりました。Googleを実行するにはChromeを標準ユーザーとして(ルートとしてログインしている間)実行します)

ターミナルを開いて入力:

adduser -u chromeuser OR useradd -m chromeuser

Google chromeを実行するには、次のコマンドを使用します。

gksu -u chromeuser google-chrome OR sux chromeuser google-chrome

ターミナルから実行したくない場合は、タスクバーにchromeを追加して右クリックし、プロパティを選択して、上記のコマンドをコマンドパラメータに追加します。

4
tzafar

2016年12月にまだグーグルする可能性のある人のために-Google Chromeバージョン54.0.2840.90 64ビット、XFCEおよびDebian 8.5で:

ケース1:Chromeまったく起動しない
端末google-chrome-stableで実行するだけのセットアップで、端末illegal instructionでエラーがすぐに発生しました。フレーム、画面の非表示、黒いウィンドウはありません。失礼なコンソールエラーです。このエラーは、--no-sandboxコマンドラインオプションを使用することで解消されます。

ケース2:Chrome --no-sandboxオプションを使用しても開いたままにしません
--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に移動し、実際にbashスクリプトであるファイルgoogle-chromeを開きます。

スクリプトの最後でパーツを見つけます

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(これは機能しましたが、ターミナルでいくつかのエラーメッセージを受け取りました)。

3
George Vasiliou

次のコマンドを実行して、動作する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 
2
yohannes seifu

Google chromeをrootとして実行するには、このパラメーター「--no-sandbox」を追加します

enter image description here

それは私のために働くでしょう。

0
SAID