Как запустить Google Chrome от имени root в Linux


10

Когда я хочу запустить Google Chrome от имени пользователя root, появляется сообщение об ошибке с таким названием:

Google Chrome не может быть запущен от имени пользователя root

и тело сообщения:

для запуска с правами root вы должны указать альтернативный --user-data-dir для хранения информации профиля.

Может кто-нибудь помочь мне?


1
хотя запускать это приложение от имени root не очень хорошая работа, я объясню метод.
M0εiπ

Ответы:


7

Чтобы запустить Google Chrome от имени пользователя root, выполните следующие действия.

  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 от имени пользователя root в Linux - MoeinFatehi


3
Просто чтобы быть ясным, правильный ответ здесь: «Вы этого не делаете». Запуск графических приложений от имени пользователя root не очень хорошая идея.
HalosGhost

1
ну, я слышал, что вы не должны запускать графические приложения от имени root, и я решил, что сделаю это просто, чтобы выяснить, почему нет. Я планировал сделать это, пока не узнал. Это сейчас 14 лет назад.
Торстен Стэрк

2
Вы должны прочитать о принципале наименьших привилегий.
HalosGhost

2
Я закончил тем, что использовал --no-sandboxтакже. Йоло
Брайс Гуинта

4

Теперь вы не можете запускать google-chrome от имени пользователя root в обновленных версиях, чтобы запустить Google 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 года - 64-битная версия Google Chrome 54.0.2840.90 под 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и откройте файл, 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 от имени пользователя root, добавьте этот параметр "--no-sandbox"

введите описание изображения здесь

это будет работать для меня.


Каковы реальные последствия этого?
Кусалананда

Аналогичны последствиям использования учетной записи root
SAID

-1

Я попробовал все решения, предоставленные там, так что, по моему мнению, это лучшее.

sudo chmod -R 777 /home/user_name/.config/google-chrome

просто запустите команду, вам не нужно ничего делать.


Привет Абхинав. Не могли бы вы объяснить, как это отвечает на вопрос о запуске Chrome от имени root.
roaima

-2

это длинный выстрел, но попробуйте это

sudo chmod -R 777 /home/user_name/.config/google-chrome

больше не нужно настраивать песочницу


Как сделать, чтобы все настройки Chrome были доступны для чтения всем?
Кусалананда

Проблема меняется каждый раз, если «google-chrome --no-sandbox» не работает, обычно требуется sudo, потому что у него недостаточно прав для папки /home/usr_name/.config/google-chrome или какой-либо другой каталоги.
Пиюш Паттайя

Обратите внимание, что root не ограничен правами доступа к файлам или владельцами файлов.
Кусалананда
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.