Existe-t-il un moyen plus simple ou plus «correct» d'ouvrir gedit en tant que root?

19

J'ai Ubuntu 12.04 en cours d'exécution sur une machine virtuelle sur une boîte virtuelle. Son existence est principalement un «jouet» pour jouer avec Ubuntu, donc pour cette raison, je voulais l'interface graphique (est-ce que «Dash» est dans Ubuntu 12.04? Quoi qu'il en soit ...)

Une chose pour laquelle j'utilise actuellement cette machine est un serveur LAMP. J'utilise 'gedit' pour éditer mes fichiers, mais parce que je n'ai pas encore correctement défini les autorisations, je l'ouvre avec sudo dans le terminal.

Tout à l'heure, pour essayer de simplifier ce processus, j'ai créé un script shell sur le bureau avec un travail très simple - sudo gedit

Je ne peux pas m'empêcher de penser qu'il doit y avoir un moyen encore plus évident d'ouvrir gedit en tant que root à partir de l'interface graphique. Alors, y a-t-il?

Edit: je viens d'améliorer mon script en remplaçant sudo par gksudo. Maintenant, je n'ai plus besoin d'ouvrir une fenêtre de terminal pendant que gedit est ouvert. Donc je suppose que c'est assez pratique pour le moment :) Il serait bon, par souci de savoir, de savoir si cela est proche de la façon dont les utilisateurs d'ubuntu les plus aguerris feraient ce genre de choses.

MrVimes
la source
2
Oui gksudo(ou plus communément appelé gksu) c'est ce que la plupart des gens utilisent. Beaucoup de matériel de lecture: askubuntu.com/questions/270006/… askubuntu.com/questions/197772/… askubuntu.com/questions/284306/… askubuntu.com/questions/11760/…
Seth
2
Seth, seriez-vous prêt à poster votre réponse comme réponse? Cela semble résolu.
Travis
"Maintenant, je n'ai plus besoin d'ouvrir une fenêtre de terminal pendant que gedit est ouvert." <- Vous le savez peut-être déjà, mais si vous ajoutez &à une commande comme indiqué ici , vous autorisez la fenêtre de terminal du script shell à se fermer immédiatement lorsqu'il geditest lancé au lieu d'attendre sa fermeture. Cette astuce devrait fonctionner gksudosans problème.
IQAndreas

Réponses:

19

Utilisez gksudo gedit.

gksudoest l'équivalent de sudopour les programmes graphiques, dont l'exécution n'est pas sûre sudo.

Taymon
la source
4
Le problème est qu'il gksun'est plus installé par défaut dans Ubuntu 13.04. J'aimerais vraiment voir une réponse pour ceux sur 13.04+. L'alternative suggérée est pkexec, mais cela ne fonctionne tout simplement pas = /.
Alaa Ali
1
@Alaa Mais il est toujours dans le référentiel, donc un rapide sudo apt-get install gksudevrait l'installer pour vous.
IQAndreas
Si vous souhaitez expliquer pourquoi il n'est pas recommandé d'utiliser sudo: Quelle est la différence entre «gksudo nautilus» et «sudo nautilus»?
IQAndreas
4
@IQAndreas, je sais que c'est dans les référentiels, mais c'est juste gênant, si je réponds à un nouvel utilisateur et que je veux qu'il édite un fichier en tant que root, pour lui dire "d'abord, lancez sudo apt-get install gksu". En ce moment, c'est un dilemme, du moins pour moi. Je ne peux pas lui dire "d'utiliser pkexec", car cela ne fonctionne pas, et c'est trop risqué pour le sudo -imoment gedit. De plus, je connais la différence entre gksudoet sudo=), ce à quoi vous auriez pu me lier à la place, est la suivante: pourquoi gksu n'est-il plus installé par défaut en 13.04? .
Alaa Ali
@Alaa Point valable concernant apt-get. En fait, mon deuxième commentaire (celui avec le lien) visait la réponse que vous avez donnée, et non une continuation de la discussion dans les commentaires (je pensais que l'affiche voudrait peut-être savoir la raison pour laquelle il n'est "pas sûr de courir en utilisant sudo ").
IQAndreas
7

Je geditm'exécute assez souvent en tant que root, j'ai donc ajouté l'option au menu contextuel dans Unity (il utilise la même commande que la réponse sélectionnée gksu gedit).

Vous devrez éditer un *.desktopfichier afin d'ajouter l'option de menu, et vous avez deux choix:

  • /usr/share/applications/gedit.desktop (nécessite un accès root pour modifier) - L'option de menu sera ajoutée pour tous les utilisateurs. Notez que vous devrez peut-être rééditer ce fichier, en ajoutant l'option si une mise à jour de gedit se produit qui écrase vos modifications.
  • ~/.local/share/applications/gedit.desktop (Si vous ne le trouvez pas là, faites un double de celui trouvé dans /usr/share/applications/et enregistrez-le dans ce nouvel emplacement) - L'option de menu ne sera disponible que pour l'utilisateur spécifié, et est considérée comme "meilleure pratique". Notez que si vous l'avez déjà ancré à votre barre Unity, vous devrez choisir Unlock from Launchersur votre icône GEdit existante, puis rajouter votre version "personnalisée". Ces modifications devraient rester même si GEdit obtient une mise à jour.

Modifiez le fichier texte en gedit.desktopajoutant le bloc de code suivant (vous pouvez utiliser les deux blocs existants comme modèle):

[Desktop Action RootWindow]
Name=Open a Root Window
Exec=gksu gedit
OnlyShowIn=Unity;

Ensuite, ajoutez la nouvelle action à la liste (devrait se situer autour de la ligne 19 du fichier texte):

Actions=Window;Document;RootWindow;

Maintenant, un clic droit sur la fenêtre de l'éditeur de texte dans Unity fait apparaître cette nouvelle option pratique:

Ubuntu Unity: Ouvrez Gedit en tant que root

IQAndreas
la source
J'ai également la même configuration pour ouvrir le gestionnaire de fichiers en tant que root, qui s'exécute gksu nautilus.
IQAndreas
2

gksudo geditfonctionne en 16.04 LTS, mais en 17.10 avec Wayland gksudone fonctionne pas.

sudodus
la source
2

Utilisez admin://devant le nom de fichier qui affiche l'invite de mot de passe GUI standard pour votre WM / shell respectif.

Ainsi, par exemple, si vous vouliez modifier vos dépôts, au lieu de taper, sudo gedit /etc/apt/sources.listvous taperiez gedit admin:///etc/apt/sources.list. Cela fonctionne pour pratiquement tous les programmes GUI, pas seulement Gedit.

Brandon Giesing
la source
Cette réponse est la bonne façon de le faire maintenant. La réponse acceptée était correcte pour les versions précédentes d'Ubuntu (avant le 17.04, je pense).
PJ Singh
0

Vous pouvez ouvrir Nautilus en tant que root, gksu nautilusmaintenant tout fichier texte que vous ouvrez à partir de cette fenêtre s'ouvrira dans Gedit en tant que root.

user154126
la source
@DavidFoerster pas tout à fait, imo :-)
guntbert
0

gksudon'est apparemment pas disponible sur les nouvelles versions d'Ubuntu et gksune fonctionnait pas pour moi, mais cette réponse a été très utile dans mon cas (Ubuntu 17.04).

Utilisez visudopour ajouter la ligne suivante à votre fichier de configuration sudo:

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"`
jtpereyda
la source
0

EDITOR=gedit sudo -e est recommandé.

funicorne
la source