GNU/Linux >> Linux Esercitazione >  >> Linux

Esecuzione di Pycharm come root dal programma di avvio

A partire da questo post (28 giugno 2018) eseguo Pycharm-2018.1.4 su Ubuntu 18.04 Bionic Beaver. La soluzione che ha funzionato per me è stata semplicemente modificare il sudoers.d file e aggiungere quanto segue all'ultima riga:

user host = (root) NOPASSWD: full_path_to_python

ad esempio:

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


Avevo la necessità di eseguire uno script da PyCharm come root come l'OP, ma la risposta accettata non ha funzionato per me perché 1.) Avevo installato PyCharm tramite flatpak e 2.) Il gksu command non è disponibile nelle versioni più recenti di Ubuntu e Mint.

Non sono riuscito a trovare un modo per far funzionare le cose in modo coerente con l'installazione di flatpak, quindi ho disinstallato PyCharm flatpak e quindi reinstallato PyCharm nel modo "normale". La risposta accettata si basa sul gksu comando che non è disponibile sul mio sistema operativo (Mint 19.2). Per fortuna pkexec è un'alternativa adatta ed era già disponibile sul mio sistema. Ho quindi aggiornato il mio file di avvio (~/.local/share/applications/PyCharm.desktop) come segue. Il bit importante è il Exec riga:

[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

Il pkexec comando farà apparire un popup che richiede la tua password ogni volta che avvii PyCharm tramite .desktop file.


Ho incontrato un altro modo per risolvere questo problema, quindi ho pensato di condividerlo (questa risposta è più simile a un'alternativa per le altre risposte).

Vale la pena ricordare che questa soluzione "attacca" il problema eseguendo solo un determinato script Python (all'interno dell'IDE PyCharm) in modalità root e non l'intera applicazione PyCharm.

1) Disattiva richiesta di password per l'esecuzione di Python:

Ciò sarà ottenuto modificando il /etc/sudoers.d/python file. Quello che dobbiamo fare è aggiungere una voce in quel file come segue:

user host = (root) NOPASSWD: full_path_to_python , ad esempio:

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

NOTE:

user può essere rilevato dal comando:whoami

host può essere rilevato dal comando:hostname

2) Crea uno "sudo script":lo scopo di questo script è dare a python il privilegio di essere eseguito come utente root.

Crea uno script chiamato python-sudo.sh e aggiungi quanto segue:

!#/bin/bash

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

Nota, ancora una volta, che il percorso è il percorso del tuo Python come la fase precedente.

Non dimenticare di dare i permessi di esecuzione a questo script usando il comando:chmod , cioè-

chmod +x python-sudo.sh

3) Usa il python-sudo.sh script come interprete PyCharm:

All'interno di PyCharm vai a:File --> Settings --> Project interpreter

In alto a destra, fai clic sull'icona "impostazioni" e fai clic su "Aggiungi locale".

Nell'opzione del browser scegli python-sudo.sh script che abbiamo creato in precedenza. Questo darà a PyCharm il privilegio di eseguire uno script python come root.

4) Debug il test:tutto ciò che resta da fare è effettivamente eseguire il debug dello script Python specifico nell'IDE PyCharm. Questo può essere fatto facilmente facendo clic con il pulsante destro del mouse sullo script di cui eseguire il debug --> premi "Debug sample_script_to_debug.py"

Spero di esserti stato utile e fammi sapere se ci sono errori in questo approccio.

Ragazzo.


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

Ulteriori informazioni su gksudo

Se sei su Ubuntu e non hai gksudo installalo usando:

apt-get install gksu

Ecco un esempio di configurazione del programma di avvio (sotto:~/.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 indica l'edizione della community, la tua potrebbe essere diversa.

Linux
  1. Impedire l'esecuzione simultanea di uno script bash

  2. Esecuzione dello script con ". ” E con “fonte”?

  3. Come dire che sto correndo in un Chroot?

  4. Diventare root dall'interno di Vim?

  5. Esecuzione di Software-center dalla riga di comando come root?

Come elencare le sessioni dello schermo in esecuzione?

Esegue lo script bash dall'URL

Esecuzione di script PHP dalla riga di comando come processo in background

Esecuzione di notify-send come root

È possibile recuperare il contenuto di uno script bash in esecuzione dalla RAM

Richiedi all'utente di accedere come root durante l'esecuzione di uno script di shell