web-dev-qa-db-fra.com

Comment lancer une application en tant que root depuis Unity Launcher?

Je recherche principalement un moyen d'épingler une application dans la barre de lancement de 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 en tant qu'utilisateur actuel la prochaine fois.

Triste, mais il n'y a pas d'option de menu contextuel "run as ...".

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

80
sorin

Si vous voulez que l'application soit toujours exécutée en tant que root

  1. Épinglez l'application sur le lanceur comme d'habitude.

  2. Localisez le fichier .desktop des applications qui sera dans:

    • /usr/share/applications/APPNAME.desktop
    • ~/.local/share/applications/APPNAME.desktop
    • ou ailleurs, utilisez locate .desktop|grep APPAME
  3. Ouvrir avec gedit:

    gksudo gedit /usr/share/applications/APPNAME.desktop
    
  4. Puis changez de ligne

    Exec=APP_COMMAND
    

    à

    Exec=gksudo -k -u root APP_COMMAND
    
  5. Sauvegarder

Cette commande préservera également votre environnement, ce qui est très utile si vous devez vous connecter à d'autres serveurs et utiliser votre clé privée.

Pour ajouter une option de liste rapide à 'Exécuter en tant que root'

Suivez les étapes 1, 2 et 3 ci-dessus

Si le programme de lancement ne dispose actuellement d'aucune autre option de liste rapide, ajoutez-le simplement à la fin du document.

X-Ayatana-Desktop-Shortcuts=Runroot

[Runroot Shortcut Group]
Name=Run as root
Exec=gksudo -k -u root APP_COMMAND
TargetEnvironment=Unity
89
edm

Dans le menu principal, sous Système, Préférences, saisissez gksudo dans le champ Commande de Launcher Properties, par exemple:

/usr/bin/gksudo /usr/bin/yourapplication

Votre champ Nom pourrait dire:

Sudo votre application

Ainsi, les utilisateurs savent qu'ils peuvent voir un mot de passe contextuel et pourquoi ...

Je ne suis pas sûr à propos de Unity Launcher vs Main Menu. Peut-être que cela aide?

Bonne chance

4
boolship

Comme alternative simple et rapide aux demandes lourdes décrites dans les réponses, je me suis habitué à faire ce qui suit ...

  1. Lancer un nouveau terminal.
  2. Entrez gksu nautilus

    (Sudo -i nautilus fonctionne aussi.)

La fenêtre résultante se trouvant sous le parapluie Sudo, vous pouvez donc l'utiliser pour accéder aux fichiers dotés des privilèges Sudo-root et les lancer jusqu'au contenu de votre cœur jusqu'à sa fermeture. Cela s'avère pratique pour les situations transitoires où vous n'avez pas besoin d'une solution plus permanente. Je l'utilise régulièrement pour extraire des fichiers compressés dans des dossiers système protégés, par exemple.

2
Syndog

Ce qui suit semble faire la même chose, sans avoir besoin d'attributs privés:

Actions=Runroot;Another

[Desktop Action Runroot]
Name=Run as root
Exec=gksudo -k -u root APP_COMMAND

[Desktop Action Another]
Name=Another action
Exec=whatever
2
Daniel

Je poste ce in-respone à la question @ Chris demandé dans les commentaires:

Supposons que vous vouliez créer un lanceur qui ouvrira le "gestionnaire de fichiers (Nautilus)" en tant que root. Ensuite, vous pouvez faire ceci:

Terminal ouvert. Type:

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

Appuyez sur Entrée. Lorsque demandé, entrez votre mot de passe de connexion et appuyez sur Entrée. Cela ouvrira gedit (éditeur de texte). Maintenant, collez le texte suivant ici:

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

Maintenant, sauvegardez-le et quittez. Vous avez terminé. Maintenant, si vous recherchez au tableau de bord, vous trouverez un nouveau lanceur "Nautilus (Root)". En cliquant dessus, vous serez invité à entrer votre mot de passe et, après authentification, Nautilus sera ouvert en tant que root.

Remarque: faites attention lorsque vous utilisez "Nautilus (Root)". Dans ce mode, vous pouvez supprimer presque n'importe quoi de / et casser le système.

1
Curious Apprentice

Cela devrait peut-être être un commentaire sur la solution de Daniel. Cela fonctionne pour moi, même dans Ubuntu 15.04. J'ai dû mettre la commande entre guillemets Exec=gksu "nautilus --new-window" à cause de l'argument supplémentaire. De plus, je ne sais pas pourquoi, je devais éditer directement le programme de lancement afin de conserver le menu d'origine (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 de nautilus est usr/share/applications/org.gnome.Nautilus.desktop. Vous devez utiliser la ligne de commande pour voir le nom de fichier réel.

Des recherches plus poussées me conduisent à ce que je considère ê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 entièrement Nautilus en tant que racine, cela vous permet d'ouvrir les répertoires sélectionnés en tant que racine dans Nautilus. Quoi qu'il en soit, j'ai vérifié, et ces deux options sont compatibles. Si vous ouvrez Nautilus en tant que racine et que vous utilisez ensuite la seconde option pour ouvrir un répertoire en tant que racine, il l'ouvre simplement sans demander le mot de passe.

0
Dominic108