GNU/Linux >> Tutoriels Linux >  >> Linux

Exécuter Pycharm en tant que root depuis le lanceur

Depuis cet article (28 juin 2018), j'utilise Pycharm-2018.1.4 sur Ubuntu 18.04 Bionic Beaver. La solution qui a fonctionné pour moi était de simplement modifier le sudoers.d fichier et ajoutez ce qui suit à la dernière ligne :

user host = (root) NOPASSWD: full_path_to_python

par exemple :

guya surface-pro = (root) NOPASSWD /usr/bin/python3.6


J'ai eu besoin d'exécuter un script à partir de PyCharm en tant que root comme l'OP, mais la réponse acceptée n'a pas fonctionné pour moi car 1.) J'avais installé PyCharm via flatpak et 2.) Le gksu La commande n'est pas disponible sur les nouvelles versions d'Ubuntu et de Mint.

Je n'ai pas trouvé de moyen de faire fonctionner les choses de manière cohérente avec l'installation de flatpak, j'ai donc désinstallé le flatpak PyCharm, puis réinstallé PyCharm de manière "normale". La réponse acceptée repose sur le gksu commande qui n'est pas disponible sur mon système d'exploitation (Mint 19.2). Heureusement pkexec est une alternative appropriée et était déjà disponible sur mon système. J'ai ensuite mis à jour mon fichier de lancement (~/.local/share/applications/PyCharm.desktop) comme suit. Le bit important est le Exec ligne :

[Desktop Entry]
Name=PyCharm
Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /opt/pycharm-community-2019.2.2/bin/pycharm.sh
Comment=PyCharm
Terminal=false
Icon=/opt/pycharm-community-2019.2.2/bin/pycharm.png
Type=Application

Le pkexec fera apparaître une fenêtre contextuelle vous demandant votre mot de passe chaque fois que vous lancerez PyCharm via le .desktop fichier.


J'ai rencontré un autre moyen de résoudre ce problème, j'ai donc pensé à le partager (cette réponse ressemble plus à une alternative aux autres réponses).

Il convient de mentionner que cette solution "attaque" le problème en exécutant uniquement un certain script Python (dans l'IDE PyCharm) en mode racine, et non l'intégralité de l'application PyCharm.

1) Désactiver mot de passe requis pour exécuter Python :

Ceci sera réalisé en éditant le /etc/sudoers.d/python dossier. Ce que nous devons faire est d'ajouter une entrée dans ce fichier comme suit :

user host = (root) NOPASSWD: full_path_to_python , par exemple :

guya ubuntu = (root) NOPASSWD /usr/bin/python

REMARQUES :

user peut être détecté par la commande :whoami

host peut être détecté par la commande :hostname

2) Créer un "sudo script":Le but de ce script est de donner à python le privilège de s'exécuter en tant qu'utilisateur root.

Créez un script appelé python-sudo.sh , et ajoutez-y ce qui suit :

!#/bin/bash

sudo /usr/bin/python "[email protected]"

Notez, encore une fois, que le chemin est le chemin vers votre Python comme la phase précédente.

N'oubliez pas de donner les permissions d'exécution à ce script en utilisant la commande :chmod , c'est-à-dire-

chmod +x python-sudo.sh

3) Utiliser le python-sudo.sh script comme interpréteur PyCharm :

Dans PyCharm, accédez à :File --> Settings --> Project interpreter

En haut à droite, cliquez sur l'icône "Paramètres", puis cliquez sur "Ajouter local".

Dans l'option du navigateur, choisissez le python-sudo.sh script que nous avons créé précédemment. Cela donnera à PyCharm le privilège d'exécuter un script python en tant que root.

4) Débogage le test :il ne reste plus qu'à déboguer le script Python spécifique dans l'IDE PyCharm. Cela peut être fait facilement via un clic droit sur le script à déboguer --> appuyez sur "Déboguer sample_script_to_debug.py"

J'espère que cela vous a été utile et faites-moi savoir s'il y a des erreurs dans cette approche.

Guy.


Essayez :gksudo ./path/to/pycharm/executable

En savoir plus sur gksudo

Si vous êtes sur Ubuntu et que vous n'avez pas gksudo installez-le en utilisant :

apt-get install gksu

Voici un exemple de configuration de lanceur (sous :~/.local/share/applications/jetbrains-pycharm-ce.desktop ):

[Desktop Entry]
Version=1.0
Type=Application
Name=PyCharm Community Edition
Icon=/home/YOUR_USER/pycharm/bin/pycharm.png
Exec=gksudo -k -u root "/home/YOUR_USER/pycharm/bin/pycharm.sh" %f
Comment=Develop with pleasure!
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-pycharm-ce
  • ce indique l'édition communautaire, la vôtre peut différer.

Linux
  1. Comment savoir que je cours dans un chroot ?

  2. Vérifier qu'un script est en cours d'exécution ?

  3. Devenir root depuis l'intérieur de Vim ?

  4. Exécuter Software-center à partir de la ligne de commande en tant que root ?

  5. Exécuter le script bash à partir de l'URL

Détecter si la touche est enfoncée à partir du script ?

D'où est exécuté un script Shell ?

Comment répertorier les sessions d'écran en cours ?

Exécuter un script shell en parallèle

Exécution de notify-send en tant que root

Inviter l'utilisateur à se connecter en tant que root lors de l'exécution d'un script shell