Comment exécuter Google Chrome en tant que root sous Linux


10

lorsque je veux exécuter google chrome en tant que root, un message d'erreur avec ce titre apparaît:

Google Chrome ne peut pas être exécuté en tant que root

et le corps du message est:

pour s'exécuter en tant que root, vous devez spécifier un autre --user-data-dir pour le stockage des informations de profil.

Quelqu'un peut-il m'aider?


1
bien que ce ne soit pas un bon travail pour exécuter cette application en tant que root, je vais vous expliquer la méthode.
M0εiπ

Réponses:


7

Pour exécuter Google Chrome en tant que root, procédez comme suit:

  1. Ouvrez google-chromedans votre éditeur préféré (en le remplaçant $EDITORpar votre favori):

    $EDITOR $(which google-chrome)
    
  2. Ajoutez --user-data-dirà la fin du fichier.

    mon fichier ressemble à ceci:

    exec -a "$0" "$HERE/chrome"  "$PROFILE_DIRECTORY_FLAG" \   "$@"
    --user-data-dir
    
  3. Enregistrez et fermez l'éditeur.

vous avez terminé. Profitez-en :)


si vous voulez voir un didacticiel vidéo, vous pouvez consulter mon article de blog:

Comment exécuter Google Chrome en tant que root sous Linux - MoeinFatehi


3
Juste pour être clair, la bonne réponse ici est "Vous ne le faites pas." L'exécution d'applications graphiques en tant que root n'est vraiment pas une excellente idée.
HalosGhost

1
Eh bien, j'ai entendu dire que vous ne devriez pas exécuter des applications graphiques en tant que root et j'ai décidé de le faire juste pour savoir pourquoi. Je comptais le faire jusqu'à ce que je le découvre. Cela fait maintenant 14 ans.
Thorsten Staerk,

2
Vous devriez lire sur le principe du moindre privilège.
HalosGhost

2
J'ai fini par devoir utiliser --no-sandboxaussi. yolo
Bryce Guinta

4

Maintenant, vous ne pouvez pas exécuter google-chrome en tant qu'utilisateur root sur les versions mises à jour, Pour exécuter Google Chrome en tant qu'utilisateur standard (tout en étant connecté en tant que root)

terminal ouvert et tapez:

adduser -u chromeuser OU useradd -m chromeuser

Pour exécuter la commande google chrome use:

gksu -u chromeuser google-chrome OU sux chromeuser google-chrome

Si vous ne souhaitez pas l'exécuter à partir de Terminal, ajoutez Chrome dans la barre des tâches, puis cliquez dessus avec le bouton droit, sélectionnez les propriétés et ajoutez la commande ci-dessus dans le paramètre de commande.


également l' utilisation d' un compte utilisateur existant a fonctionné pour moi: gksu -u gv google-chrome-stable. Bien que j'ai reçu quelques erreurs dans le terminal, mais cela a fonctionné.
George Vasiliou

3

Pour ceux qui pourraient encore googler en décembre 2016 - Google Chrome version 54.0.2840.90 64 bits sous XFCE et Debian 8.5:

Cas 1: Chrome ne démarre pas du tout
Dans ma configuration juste en exécutant dans le terminal, google-chrome-stablej'obtenais immédiatement une erreur dans le terminal illegal instruction. Pas de cadres, pas de masquage d'écran, pas de fenêtres noires. Juste une grossière erreur de console. Cette erreur disparaît en utilisant l' --no-sandboxoption de ligne de commande.

Cas 2: Chrome refuse toujours de s'ouvrir même avec l'option --no-sandbox
Ce n'était pas mon cas puisque --no-sandbox était suffisant, mais si vous rencontrez un tel comportement, vous pouvez essayer de tout désactiver lors de l'appel de chrome, comme:

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

Ensuite, vous pouvez activer les options étape par étape jusqu'à identifier celle qui casse.
PS: Tous les indicateurs / arguments CLI peuvent être trouvés ici .

Cas 3: un message Please start Google Chrome as a normal user.To run as root you must specify an alternate --user-data-dir for storage of profile informationapparaît.

Solution qui a fonctionné pour moi: allez dans /opt/google/chromeet ouvrez le fichier google-chromequi est en fait un script bash.

À la fin du script, trouvez la partie

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

Et changez la partie else comme ceci:

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

Enregistrez et exécutez google-chrome-stable --no-sandbox.
Je me suis levé et j'ai surfé.

Pour une solution plus sophistiquée, j'ai personnellement appliqué une sorte de vérification utilisateur pour éviter d'éventuelles perturbations lors de l'exécution de Chrome en tant qu'utilisateur normal:

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

Autre solution:
vous ne pouvez pas modifier le fichier google-chrome comme indiqué ci-dessus, et vous pouvez soit suivre la recommandation de @tzafar pour créer un nouvel utilisateur ou lancer Chrome à l'aide d'un compte d'utilisateur normal existant: gksu -u user google-chrome-stable(cela a fonctionné mais certains messages d'erreur ont été reçus dans Terminal).


1
a parfaitement fonctionné
Ewall Tester

2

exécutez la commande suivante et ouvrez google-chrome, cela fonctionnera

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

Pour exécuter Google Chrome en tant que root, ajoutez ce paramètre "--no-sandbox"

entrez la description de l'image ici

cela fonctionnera pour moi.


Quelles sont les conséquences réelles de cela?
Kusalananda

Sont les mêmes que les conséquences de l'utilisation d'un compte root
DIT le

-1

J'ai essayé toutes les solutions qui y sont proposées, donc à mon avis, celle-ci est la meilleure.

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

exécutez simplement la commande, vous n'avez rien à faire.


Bonjour Abhinav. Pourriez-vous expliquer comment cela répond à la question de l'exécution de Chrome en tant que root.
roaima

-2

c'est un long shot mais essayez ceci

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

plus besoin de configurer le bac à sable


Comment aider à rendre la configuration de Chrome lisible par tout le monde?
Kusalananda

le problème est différent à chaque fois si «google-chrome --no-sandbox» ne fonctionne pas, généralement sudo est requis car il n'a pas suffisamment d'autorisations sur le dossier /home/usr_name/.config/google-chrome ou un autre répertoires.
Piyush Pattaiya

Notez que root n'est pas limité par les autorisations de fichiers ou les propriétaires de fichiers.
Kusalananda
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.