web-dev-qa-db-fra.com

Exécutez "Sudo arduino" avec le fichier .desktop

Pour les électeurs proches: apparemment une dupe, mais pas tout à fait, du moins pas celle suggérée: dans la question liée, les commandes peuvent être ajoutées en toute sécurité au fichier sudoers. Dans le cas d'un IDE, c'est une mauvaise idée.

J'ai donc installé arduino IDE à partir du centre de logiciel. Voici la chose, je dois exécuter la commande "Sudo arduino" du terminal, pour que arduino IDE _ fonctionne correctement pour moi. Ne vous méprenez pas, chaque fois que je lance l'arduino à partir de son icône normale, cela fonctionne aussi très bien. J'utilise simplement une bibliothèque spécifique qui ne se compile pas correctement si je n'utilise pas la commande "Sudo arduino" pour ouvrir mon IDE (je ne sais pas pourquoi).

Comme je dois toujours ouvrir le terminal, je me demandais s'il était possible de créer un fichier .desktop (ou un fichier .sh peut-être?) Sur lequel je pourrais simplement cliquer et lancer l'exécution de l'EDI "Sudo arduino". Je veux éviter d'ouvrir le terminal à chaque fois, si possible.

Merci d'avance!

Mise à jour 1 ---------------------------------------

Je ne souhaite pas simplement éviter d'utiliser la commande Sudo lors du lancement de IDE depuis le terminal (au lieu d'écrire "Sudo arduion" pour écrire "arduino"). Ce que je veux, c'est éviter d'utiliser le terminal tous ensemble et avoir une icône sur mon bureau qui, une fois cliquée, lancera l'arduino IDE de la même manière que d'entrer dans le terminal et d'écrire "Sudo arduino".

5

Suggérer que c'est une dupe suppose que l'ajout d'Arduino au fichier sudoers est une bonne idée, ce qui n'est pas le cas. Jamais ajouter une application susceptible de ruiner votre système ou de modifier du code pour ruiner votre système pour les sudoers fichier, tout simplement parce que comme un risque de sécurité.

uniquement ajoutez des applications ou des scripts au fichier sudoers si:

  • le code ne peut pas être édité (stocké dans un emplacement nécessitant l'autorisation de l'administrateur pour écrire), et

  • l'application n'a pas le potentiel de modifier le code d'autres applications ou scripts.

Que faire dans ce cas

  1. Copiez le fichier .desktop existant dans ~/.local/share/applications:

    cp /usr/share/applications/arduino.desktop ~/.local/share/applications
    
  2. Ouvrez le fichier avec gedit:

    gedit ~/.local/share/applications/arduino.desktop
    

    et ajoutez une section au bas du fichier:

    Actions=Arduino IDE with Sudo;
    
    [Desktop Action Arduino IDE with Sudo]
    Name=Arduino IDE with Sudo
    Exec=gksu arduino
    OnlyShowIn=Unity;
    

Désormais, arduino exécute "normalement" lorsque vous cliquez dessus, mais dispose de l'option de clic droit pour exécuter avec Sudo:

enter image description here

Remarques

  • Si vous n'avez pas installé gksu (le 16.04, il est pré-installé), vous devez d'abord exécuter:

    Sudo apt-get install gksu
    
  • Vous devez probablement vous déconnecter/vous connecter pour que le programme de lancement modifié soit efficace.

Alternativement

Si vous ne souhaitez pas que l'icône Arduino soit verrouillée par le lanceur, ajoutez la commande sous forme de raccourci clavier: choisissez: Paramètres système> "Clavier"> "Raccourcis"> "Raccourcis personnalisés". Cliquez sur le "+" et ajoutez la commande:

gksu arduino

à un raccourci de votre choix.

4
Jacob Vlijm

Copiez le fichier .desktop et éditez la copie avec gedit (ou n’importe quel éditeur de texte), c’est-à-dire en ouvrant l’éditeur et en déposant le fichier dans la fenêtre des éditeurs. Vous verrez une ligne commençant par Exec=, quelque chose comme Exec=/path/arduino. Cette ligne doit être modifiée en conséquence, puis enregistrez les modifications.

Si vous voulez en savoir plus sur les fichiers du bureau, je vous recommande:

Question: Créer des fichiers .desktop - Juste quelques questions
Spécification des fichiers du bureau: https://standards.freedesktop.org/desktop-entry-spec/latest/index.html

Commencez avec les droits Sudo en saisissant un mot de passe

Installez gksu à l’aide de la commande Sudo apt-get install gksu. Maintenant, utilisez gksu au lieu de Sudo (Exec=gksu /path/arduino) et vous serez invité à entrer un champ de saisie du mot de passe, comme gparted, lorsque vous démarrez via le fichier de bureau.

1
verpfeilt