Jak uruchomić Google Chrome jako root w systemie Linux

10

gdy chcę uruchomić Google Chrome jako root, pojawia się komunikat o błędzie z tym tytułem:

Google Chrome nie może być uruchamiany jako root

a treść wiadomości to:

aby uruchomić jako root, musisz podać alternatywny katalog --user-data-katalog do przechowywania informacji o profilu.

czy ktoś może mi pomóc?

szyfr
źródło
1
chociaż uruchamianie tej aplikacji jako root nie jest dobrą pracą, wyjaśnię tę metodę.
M0εiπ

Odpowiedzi:

7

Aby uruchomić Google Chrome jako root, wykonaj następujące kroki:

  1. Otwórz google-chromew swoim ulubionym edytorze (zamieniając $EDITORna ulubiony):

    $EDITOR $(which google-chrome)
    
  2. Dodaj --user-data-dirna samym końcu pliku.

    mój plik wygląda następująco:

    exec -a "$0" "$HERE/chrome"  "$PROFILE_DIRECTORY_FLAG" \   "$@"
    --user-data-dir
    
  3. Zapisz i zamknij edytor.

Jesteś skończony. Ciesz się :)


jeśli chcesz zobaczyć samouczek wideo, możesz sprawdzić mój post na blogu:

Jak uruchomić Google Chrome jako root w Linuksie - MoeinFatehi

M0εiπ
źródło
3
Żeby było jasne, poprawna odpowiedź brzmi „nie”. Uruchamianie aplikacji graficznych jako root naprawdę nie jest świetnym pomysłem.
HalosGhost,
1
cóż, słyszałem, że nie powinieneś uruchamiać aplikacji graficznych jako root i zdecydowałem, że zrobię to tylko po to, aby dowiedzieć się, dlaczego nie. Planowałem to zrobić, dopóki się nie dowiem. To jest teraz 14 lat temu.
Thorsten Staerk,
2
Powinieneś przeczytać o zasadzie najmniejszych uprawnień.
HalosGhost,
2
Skończyło się też na tym, że muszę użyć --no-sandbox. yolo
Bryce Guinta
4

Teraz nie możesz uruchomić google-chrome jako użytkownik root w zaktualizowanych wersjach. Aby uruchomić Google Chrome jako użytkownik standardowy (zalogowany jako root)

otwórz terminal i wpisz:

adduser -u chromeuser LUB useradd -m chromeuser

Aby uruchomić polecenie Google Chrome użyj polecenia:

gksu -u chromeuser google-chrome LUB sux chromeuser google-chrome

Jeśli nie chcesz uruchamiać go z terminala, dodaj chrome na pasku zadań, a następnie kliknij go prawym przyciskiem myszy, wybierz właściwości i dodaj powyższe polecenie w parametrze polecenia.

tzafar
źródło
również przy użyciu istniejącego konta użytkownika pracował dla mnie gksu -u gv google-chrome-stable. Wprawdzie dostałem trochę błędów w terminalu, ale zadziałało.
George Vasiliou,
3

Dla tych, którzy mogą być jeszcze google w grudniu 2016 r. - Google Chrome w wersji 54.0.2840.90 64-bitowy pod XFCE i Debian 8.5:

Przypadek 1: Chrome w ogóle się nie uruchamia
W mojej konfiguracji po uruchomieniu w terminalu google-chrome-stablenatychmiast pojawiał się błąd w terminalu illegal instruction. Bez ramek, bez wygaszania ekranu, bez czarnych okien. Po prostu niegrzeczny błąd konsoli. Ten błąd znika za pomocą --no-sandboxopcji wiersza polecenia.

Przypadek 2: Chrome nadal odmawia otwarcia, nawet z opcją - bez piaskownicy
Nie było tak w moim przypadku, ponieważ - brak piaskownicy wystarczy, ale jeśli wystąpi takie zachowanie, możesz spróbować wyłączyć wszystko podczas wywoływania chrome, np .:

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

Następnie możesz krok po kroku włączyć opcje aż do zidentyfikowania, który się zepsuje.
PS: Wszystkie flagi / argumenty CLI można znaleźć tutaj .

Przypadek 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 informationpojawia się komunikat .

Rozwiązanie, które dla mnie zadziałało: /opt/google/chromeotwórz i otwórz plik, google-chromektóry jest w rzeczywistości skryptem bash.

Na końcu skryptu znajdź część

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

I zmień część else w ten sposób:

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

Zapisz i uruchom google-chrome-stable --no-sandbox.
Wstałem i surfowałem.

Aby uzyskać bardziej wyrafinowane rozwiązanie, osobiście zastosowałem rodzaj kontroli użytkownika, aby uniknąć możliwych zakłóceń w uruchamianiu Chrome jak zwykły użytkownik:

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

Inne obejście:
Nie możesz zmodyfikować pliku google-chrome, jak wskazano powyżej, i możesz postępować zgodnie z zaleceniami @tzafar dotyczącymi tworzenia nowego użytkownika lub uruchomić Chrome przy użyciu istniejącego konta zwykłego użytkownika: gksu -u user google-chrome-stable(działało, ale niektóre komunikaty o błędach otrzymano w terminal).

George Vasiliou
źródło
1
działało idealnie
Ewall Tester
2

uruchom polecenie następujące i otwórz google-chrome, to zadziała

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 
Yohannes Seifu
źródło
0

Aby uruchomić Google Chrome jako root, dodaj ten parametr „--no-sandbox”

wprowadź opis zdjęcia tutaj

to zadziała dla mnie.

POWIEDZIANY
źródło
Jakie są faktyczne konsekwencje takiego postępowania?
Kusalananda
Są takie same, jak konsekwencje korzystania z konta root
SAID
-1

wypróbowałem wszystkie rozwiązania tam dostarczone, więc moim zdaniem ten jest najlepszy.

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

po prostu uruchom polecenie, nie musisz nic robić.

Abhinav
źródło
Cześć Abhinav. Czy możesz wyjaśnić, w jaki sposób odpowiada to na pytanie o uruchomienie Chrome jako root.
roaima
-2

to długa szansa, ale spróbuj tego

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

nie trzeba już konfigurować piaskownicy

Piyush Pattaiya
źródło
W jaki sposób ułatwiałoby wszystkim odczytanie konfiguracji Chrome?
Kusalananda
problem jest inny za każdym razem, gdy „google-chrome --no-sandbox” nie działa, zwykle wymagane jest sudo, ponieważ nie ma wystarczającej zgody na folder /home/usr_name/.config/google-chrome lub inny katalogi.
Piyush Pattaiya,
Należy pamiętać, że uprawnienia roota nie są ograniczone przez uprawnienia do plików lub prawa własności do plików.
Kusalananda