Come eseguire google chrome come root in Linux


10

quando voglio eseguire google chrome come root, appare un messaggio di errore con questo titolo:

Google Chrome non può essere eseguito come root

e il corpo del messaggio è:

per essere eseguito come root, è necessario specificare un --user-data-dir alternativo per la memorizzazione delle informazioni del profilo.

Qualcuno può aiutarmi?


1
sebbene non sia un buon lavoro eseguire questa applicazione come root, spiegherò il metodo.
M0εiπ,

Risposte:


7

Per eseguire google chrome come root, attenersi alla seguente procedura:

  1. Apri google-chromenel tuo editor preferito (sostituendolo $EDITORcon il tuo preferito):

    $EDITOR $(which google-chrome)
    
  2. Aggiungi --user-data-diralla fine del file.

    il mio file è simile al seguente:

    exec -a "$0" "$HERE/chrome"  "$PROFILE_DIRECTORY_FLAG" \   "$@"
    --user-data-dir
    
  3. Salva e chiudi l'editor.

hai finito. Divertirsi :)


se vuoi vedere il video tutorial, puoi controllare il mio post sul blog:

Come eseguire google chrome come root in Linux - MoeinFatehi


3
Giusto per essere chiari, la risposta corretta qui è "Non lo fai." L'esecuzione di app grafiche come root non è davvero una grande idea.
HalosGhost il

1
bene ho sentito che non dovresti eseguire applicazioni grafiche come root e ho deciso di farlo solo per scoprire perché no. Ho pianificato di farlo fino a quando non l'ho scoperto. Questo è ora 14 anni fa.
Thorsten Staerk,

2
Dovresti leggere il principio del privilegio minimo.
HalosGhost il

2
Alla fine ho dovuto usare --no-sandboxanche io . yolo
Bryce Guinta,

4

Ora non puoi eseguire google-chrome come utente root su versioni aggiornate, per eseguire Google Chrome come utente standard (mentre hai effettuato l'accesso come root)

terminale aperto e digitare:

adduser -u chromeuser O useradd -m chromeuser

Per eseguire google chrome utilizzare il comando:

gksu -u chromeuser google-chrome O sux chromeuser google-chrome

Se non si desidera eseguirlo dal Terminale, aggiungere Chrome nella barra delle applicazioni e fare clic con il tasto destro su di esso, selezionare Proprietà e aggiungere il comando sopra nel parametro comando.


anche utilizzando un account utente esistente funzionato per me: gksu -u gv google-chrome-stable. Anche se ho ricevuto alcuni errori nel terminale, ma ha funzionato.
George Vasiliou,

3

Per coloro che potrebbero ancora cercare su Google a dicembre 2016 - Versione di Google Chrome 54.0.2840.90 a 64 bit sotto XFCE e Debian 8.5:

Caso 1: Chrome non si avvia affatto
Nella mia configurazione, semplicemente eseguendo nel terminale, google-chrome-stableho subito ricevuto un errore nel terminale illegal instruction. Niente cornici, niente oscuramento dello schermo, niente finestre nere. Solo un maleducato errore della console. Questo errore scompare utilizzando l' --no-sandboxopzione della riga di comando.

Caso 2: Chrome si rifiuta ancora di aprirsi anche con l'opzione --no-sandbox
Non era il mio caso poiché --no-sandbox era sufficiente, ma se si verifica un comportamento del genere potresti provare a disabilitare tutto quando chiami Chrome, come:

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

Quindi è possibile abilitare passo dopo passo le opzioni fino a identificare quale si interrompe.
PS: Tutti i flag / arg della CLI sono disponibili qui .

Caso 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 informationappare il messaggio .

Soluzione che ha funzionato per me: vai su /opt/google/chromee apri il file google-chromeche è in realtà uno script bash.

Alla fine della sceneggiatura trova la parte

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

E cambia l'altra parte in questo modo:

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

Salva ed esegui google-chrome-stable --no-sandbox.
Mi sono alzato e ho fatto surf.

Per una soluzione più sofisticata ho applicato personalmente una sorta di controllo utente per evitare possibili disturbi nell'esecuzione di Chrome come utente normale:

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

Un'altra soluzione alternativa:
non è possibile modificare il file google-chrome come indicato sopra e è possibile seguire la raccomandazione di @tzafar per creare un nuovo utente o avviare Chrome utilizzando un account utente normale esistente: gksu -u user google-chrome-stable(ha funzionato ma alcuni messaggi di errore sono stati ricevuti in terminale).


1
ha funzionato perfettamente
Ewall Tester il

2

esegui il comando seguente e apri google-chrome funzionerà

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

Per eseguire google chrome come root, aggiungi questo parametro "--no-sandbox"

inserisci qui la descrizione dell'immagine

funzionerà per me.


Quali sono le conseguenze effettive nel fare questo?
Kusalananda

Sono le stesse conseguenze dell'utilizzo di un account root
SAID

-1

ho provato tutte le soluzioni fornite lì, quindi secondo me questa è la migliore.

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

basta eseguire il comando che non è necessario fare nulla.


Ciao Abhinav. Potresti spiegare come questo risponde alla domanda di eseguire Chrome come root.
roaima,

-2

questo è un colpo lungo ma prova questo

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

non è più necessario configurare sandbox


In che modo rendere tutta la configurazione di Chrome leggibile da tutti sarebbe di aiuto?
Kusalananda

il problema è diverso ogni volta che 'google-chrome --no-sandbox' non funziona, di solito è richiesto sudo perché non ha l'autorizzazione sufficiente per la cartella /home/usr_name/.config/google-chrome o qualche altra le directory.
Piyush Pattaiya,

Si noti che root non è limitato dalle autorizzazioni o dalle proprietà dei file.
Kusalananda
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.