Impossible d'ouvrir Gedit en tant que root

15

Lorsque je cours, sudo gedit /path/to/some/random/filej'obtiens l'erreur suivante

** (gedit:6262): WARNING **: Command line `dbus-launch --autolaunch=7f8731869e1c690b8205727e0000000a --binary-syntax --close-stderr' exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.
Cannot open display: 
Run 'gedit --help' to see a full list of available command line options.  

L'utilisation gksudon'aide pas non plus qui retourne

Cannot open display: 
Run 'gedit --help' to see a full list of available command line options.  

Tous les gars d'aide. J'ai besoin d'avoir cette capacité pour ouvrir des fichiers dans Gedit en tant que root.
J'ai trouvé cette question avec la même erreur mais pas de solution Impossible de lancer gedit avec sudo


EDIT
J'ai trouvé ce message dans les forums Ubuntu .
Ce sont les instructions:

  1. echo $ DISPLAY # vous aurez besoin de cette valeur 3 lignes ci-dessous
  2. sudo -i # ou "su -" sur les anciens Slackwares
  3. xauth merge ~ alien / .Xauthority # utilisez votre propre nom d'utilisateur ici au lieu de "alien"
  4. export DISPLAY =: 0.0 # utilisez la valeur de DISPLAY vous avez vu 3 lignes avant

En arrivant à la commande # 3, j'ai eu cette erreur
xauth: file /root/.Xauthority does not exist

Peut-être que cette nouvelle information peut apporter plus de lumière.

Parto
la source
Avez-vous essayé à la gksudo gedit /path/to/the/file/nameplace?
AzkerM
@AzkerMohamed Yah, comme le dit ma question, utilise gksudoou gksurenvoie la même erreur.
Parto
1
Semble le même cas que ce askubuntu.com/questions/175611/…
user.dz
J'ai créé un script à cet effet: gist.github.com/wachambo/bd22e12db2d5a46dc109bd0d553733be
Alejandro Blasco

Réponses:

13

Enfin trouvé une réponse. À partir de cette question Impossible de se connecter à X Server lors de l'exécution d'une application avec sudo et en particulier de cette question Erreur lors de la tentative d'exécution d'une application avec sudo ou gksudo .

J'ai ajouté la ligne Defaults env_keep+="DISPLAY"à la fin du visudofichier à /etc/sudoers.

Ouais, mon sudo geditest de retour!

ÉDITER

Vous avez de nouveau la même erreur pendant un certain temps.

A fait plus de recherches, en particulier cette réponse /ubuntu//a/137584/163331 et réalisé que je devais ajouter plus d'options au visudofichier. Au lieu de Defaults env_keep+="DISPLAY", j'ai utilisé cette ligne:

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"
Parto
la source
Pourquoi ajouter HOME à env_keep?
muru
10

L'exécution de toutes les applications d'interface graphique en tant que root peut entraîner une corruption de fichiers, en particulier si l'application d'interface graphique est un éditeur de texte. En plus de cela gksuet gksudone fonctionne pas pour démarrer des applications graphiques en tant que root dans Wayland dans Ubuntu 17.10: Pourquoi gksu / gksudo ne fonctionne-t-il pas avec Wayland? et le paquet gksu a été supprimé des référentiels Ubuntu par défaut dans Ubuntu 18.04 et versions ultérieures.

Nautilus Admin ( nautilus-admin ) est une simple extension Python pour le gestionnaire de fichiers Nautilus qui ajoute des actions administratives au menu contextuel:

  • Ouvrir en tant qu'administrateur: ouvre un dossier dans une nouvelle fenêtre Nautilus fonctionnant avec des privilèges d'administrateur (root).
  • Modifier en tant qu'administrateur: ouvre un fichier dans une fenêtre Gedit fonctionnant avec des privilèges d'administrateur (root).

Pour installer Nautilus Admin dans toutes les versions actuellement prises en charge d'Ubuntu, ouvrez le terminal et tapez:

sudo apt install nautilus-admin  

Bien qu'il existe des commandes pour exécuter des applications graphiques en tant que root, il est fortement conseillé d'utiliser l'éditeur de texte nano, qui est normalement exécuté à partir du terminal, pour éditer des fichiers en tant que root. L'éditeur de texte nano est inclus dans l'installation Ubuntu par défaut.

Nano est très facile à utiliser. Les instructions d'utilisation de l'éditeur nano se trouvent toujours au bas de chaque page. Les deux seuls raccourcis clavier nano que vous devez connaître sont pour WriteOut et Exit. Appuyez sur la combinaison de touches Ctrl+ Oet ensuite appuyez sur Enterpour enregistrer le fichier en cours d'édition. Appuyez sur la combinaison de touches Ctrl+ Xpour quitter nano.

Si vous prenez l'habitude de modifier les fichiers en tant que root de la bonne façon, vous réduirez la possibilité de faire des erreurs qui peuvent prendre beaucoup de temps à corriger.

Karel
la source
2
+1 pour l' nanoéditeur. L'un des meilleurs éditeurs que n'importe qui pourrait trouver plus facile à utiliser.
AzkerM
@Karel J'ai finalement utilisé nano pour effectuer les modifications, mais j'ai besoin de récupérer ma racine Gedit.
Parto
2
C'est un bon conseil, mais ce n'est pas la réponse. Les gars de Linux aiment le terminal, mais une interface graphique est géniale pour les tâches complexes et a une meilleure UX.
azerafati
Vous pouvez personnaliser l'éditeur par défaut de la sudoeditcommande (qui est par défaut nano): Comment puis-je changer l'éditeur par défaut de la commande sudoedit pour qu'il soit vim? mais le démarrage des éditeurs GUI en tant que root peut provoquer des problèmes dans Ubuntu 17.10 et versions ultérieures avec wayland.
karel
5

Dans Ubuntu 17.10, au moins, vous pouvez le faire:

gedit admin:///path/to/some/random/file

Vous serez invité à entrer votre mot de passe, puis le fichier sera ouvert pour modification en tant que root.

Gunnar Hjalmarsson
la source
Fonctionne également sous 18.04 ...
Elder Geek
4

Pour gedit, essayez ceci:

sudo -H env DISPLAY=:0 gedit
kiri
la source
1
Obtention de la même erreur.
Parto
1

J'essaie de résumer toutes les informations dans les autres réponses sur cette page:

Wayland:

La seule option semble être utilisée nanoouvi/vim

Xorg:

essaye ça

sudo -H env DISPLAY=:0 gedit

si cela fonctionne, cela signifie probablement que vous devez ajouter une option aux fichiers de configuration sudo

sudo visudo

Essayez d'ajouter cette ligne à la fin

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"`
Postadelmaga
la source
Pourquoi ajouter HOME à env_keep?
muru
geditfonctionne très bien à Wayland. Veuillez voir la réponse que je viens de publier.
Gunnar Hjalmarsson
0

J'ai juste eu un problème similaire. J'utilise Debian Jessie et pour démarrer gedit en tant que root, cette ligne fonctionnait enfin:

sudo -H gedit
Paul Free
la source