web-dev-qa-db-fra.com

Exécution de Pycharm en tant que root à partir du lanceur

Comment est-il possible d'exécuter Pycharm à partir du lanceur avec des privilèges root?

Je peux le faire depuis la fenêtre du terminal, avec Sudo ./pycharm.sh, mais j'aimerais faire de même directement depuis le lanceur.

13
Zorgmorduk

J'ai rencontré une autre façon 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 ici que cette solution "attaque" le problème en exécutant uniquement un certain script Python (dans l'IDE pycham) en mode racine, et non l'application pycharm entière.

1) Désactiver nécessitant un mot de passe pour exécuter Python:

Ceci sera réalisé en éditant le fichier /etc/sudoers.d/python. 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 "script Sudo": 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 les éléments suivants:

!#/bin/bash

Sudo /usr/bin/python "$@"

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

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

chmod +x python-Sudo.sh

) Utilisez le script python-Sudo.sh Comme interprète pycharm:

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

Dans le coin supérieur droit, cliquez sur l'icône "Paramètres", puis sur "Ajouter local".

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

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

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

À votre santé,

Gars.

7
Guy Avraham

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

En savoir plus sur gksudo

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

apt-get install gksu

Voici un exemple de configuration du 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.
10
Reut Sharabani

Depuis ce billet (28 juin 2018), je lance Pycharm-2018.1.4 sur Ubuntu 18.04 Bionic Beaver. La solution qui a fonctionné pour moi a été de simplement modifier le fichier sudoers.d Et d'ajouter 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

2
Anthony Smith

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

Je ne pouvais pas trouver un moyen de faire fonctionner les choses de manière cohérente avec l'installation du flatpak, j'ai donc désinstallé le flatpak PyCharm, puis réinstallé PyCharm de la manière "normale". La réponse acceptée repose sur la commande gksu qui n'est pas disponible sur mon OS (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 la ligne Exec:

[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

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

1
ubiquibacon