92 votes

Comment lancer une application en tant que root à partir de Unity Launcher ?

Je cherche principalement un moyen d'épingler une application à la barre de lancement d'Unity, et de l'exécuter en tant que root.

Actuellement, même si je lance l'application avec sudo, et que je l'épingle après son démarrage, elle démarrera la prochaine fois en tant qu'utilisateur actuel.

C'est triste, mais il n'y a pas d'option de menu contextuel "exécuter en tant que ...".

Mise à jour : Je suis passé à gnome3 et maintenant je suis content, il ne me manque que la recherche.

1voto

Curious Apprentice Points 3257

Je poste ceci en réponse à la question @ Chris demandé dans les commentaires :

Supposons que vous vouliez créer un lanceur qui ouvre le "gestionnaire de fichiers (nautilus)" en tant que root. Vous pouvez alors faire ceci :

Terminal ouvert. Type :

sudo -H gedit /usr/share/applications/nautilus_root.desktop

Appuyez sur Entrée. Lorsqu'on vous le demande, entrez votre mot de passe de connexion et appuyez sur Entrée. Cela ouvrira gedit (éditeur de texte). Maintenant, collez-y ce qui suit :

[DesktopEntry]
Encoding=UTF-8
Name=Nautilus(Root)
Comment=FileManager
Exec=gksu nautilus
Icon=file-manager
Categories=System;
Type=Application
Terminal=0

Maintenant, il suffit de l'enregistrer et de quitter. Vous avez terminé. Maintenant, si vous cherchez sur dash, vous trouverez un nouveau lanceur "Nautilus (Root)". Cliquez dessus pour demander votre mot de passe, et après authentification, Nautilus sera ouvert en tant que root.

Note : Faites attention lorsque vous exécutez "Nautilus (Root)". Dans ce mode, vous pouvez supprimer presque tout ce qui se trouve dans / et briser le système.

0voto

jeremy Points 388

Cela devrait peut-être être un commentaire sur la solution de Daniel. Elle fonctionne pour moi, même sous Ubuntu 15.04. J'ai dû mettre la commande entre guillemets Exec=gksu "nautilus --new-window" à cause de l'argument supplémentaire. De plus, d'une manière ou d'une autre, je ne sais pas pourquoi, j'ai dû modifier le lanceur directement afin de conserver le menu original (avec la nouvelle option). Si vous faites glisser votre propre lanceur, il sera enregistré, mais vous n'aurez pas le même menu.

Dans Ubuntu 15.04, le lanceur pour nautilus est usr/share/applications/org.gnome.Nautilus.desktop . Vous devez utiliser la ligne de commande pour voir le nom réel du fichier.

Des recherches plus poussées m'ont conduit à ce que je crois être une meilleure option : http://ubuntuhandbook.org/index.php/2014/04/ubuntu-14-04-add-open-as-rootadministrator-to-context-menu/ . Au lieu d'ouvrir Nautilus entièrement en tant que Root, cela vous permet d'ouvrir des répertoires sélectionnés en tant que Root dans Nautilus. Quoi qu'il en soit, j'ai vérifié, et ces deux options sont compatibles. Si vous ouvrez Nautilus en tant que Root et que vous utilisez ensuite la deuxième option pour ouvrir un répertoire en tant que Root, il l'ouvre simplement sans demander le mot de passe.

0voto

Pedro Lobito Points 140

Pour créer un raccourci qui exécute un script avec les droits de root sur Ubuntu. 20.04 vous pouvez l'utiliser :

  1. Ajoutez la ligne suivante à /etc/sudoers ( sudo gedit /etc/sudoers )

    • YOURUSERNAME ALL = NOPASSWD: /script/path
  2. Créez un raccourci sur le bureau :

    • gedit ~/Desktop/myshortcut.desktop
  3. Ajoutez le contenu suivant :

    #!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Type=Application Terminal=false Exec=sudo /script/path myarg Name=Shortcut Name Comment=Shortcut Comment Icon=/usr/share/icons/Humanity/actions/16/media-playback-start.svg

  4. Cliquez à droite et sur le raccourci et choisissez Allow Launching :

enter image description here

0voto

dez93_2000 Points 1109

A partir d'Ubuntu 18.04 gksu sont amortis, pkexec nécessite une installation et ne fonctionne pas toujours. Voici un autre moyen :

Par Réponse d'edm modifier le .desktop La ligne EXEC, mais en la faisant précéder de "sudo", par ex. /usr/bin/nvidia-settings devient sudo /usr/bin/nvidia-settings . Utilisateurs de MenuLibre (et peut-être d'autres éditeurs de menu GUI) : la fonction Command dans MenuLibre envoie à la ligne EXEC ligne dans la .desktop de sorte que vous n'avez pas besoin de creuser le fichier .desktop sortir le dossier.

Si vous essayez de le faire à partir du menu maintenant, rien ne se passera. Sudo est appelé sans interface graphique, donc rien ne se passe et il échoue silencieusement. Ceci est attendu.

En terminal : sudo visudo puis ajouter en bas (clic droit coller) :

YOURUSERNAME ALL=(ALL) NOPASSWD: /usr/bin/nvidia-settings

ctrl+o pour enregistrer, entrer, ctrl+X pour fermer le fichier. Cela devrait fonctionner maintenant.

0voto

Tecnocat Points 408

Comme j'étais également bloqué sur ce point, j'ai finalement trouvé une solution qui a fonctionné pour moi sur Ubuntu 20.x LTS.

  1. exécuter echo pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY dans un terminal
  2. copier sa sortie
  3. éditer la rubrique correspondante .desktop à l'adresse /usr/share/applications/
  4. insérer la sortie de 1. après Exec= votre commande finale devrait ressembler à quelque chose comme ceci Exec=pkexec env DISPLAY=:0 XAUTHORITY=/run/user/1000/gdm/Xauthority /usr/sbin/kvpm

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X