GNU/Linux >> Tutoriales Linux >  >> Linux

Ejecutando Pycharm como root desde el lanzador

A partir de esta publicación (28 de junio de 2018), estoy ejecutando Pycharm-2018.1.4 en Ubuntu 18.04 Bionic Beaver. La solución que funcionó para mí fue simplemente editar el sudoers.d archivo y agregue lo siguiente a la última línea:

user host = (root) NOPASSWD: full_path_to_python

por ejemplo:

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


Tuve la necesidad de ejecutar un script de PyCharm como root como el OP, pero la respuesta aceptada no funcionó para mí porque 1.) había instalado PyCharm a través de flatpak y 2.) El gksu El comando no está disponible en las versiones más recientes de Ubuntu y Mint.

No pude encontrar una manera de hacer que las cosas funcionaran de manera consistente con la instalación de flatpak, así que desinstalé PyCharm flatpak y luego reinstalé PyCharm de la manera "normal". La respuesta aceptada se basa en el gksu comando que no está disponible en mi sistema operativo (Mint 19.2). Afortunadamente pkexec es una alternativa adecuada y ya estaba disponible en mi sistema. Luego actualicé mi archivo de inicio (~/.local/share/applications/PyCharm.desktop) de la siguiente manera. El bit importante es el Exec línea:

[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

El pkexec El comando hará que aparezca una ventana emergente que le pedirá su contraseña cada vez que inicie PyCharm a través del .desktop archivo.


Encontré otra forma de resolver este problema, así que pensé en compartirla (esta respuesta es más como una alternativa para las otras respuestas).

Vale la pena mencionar que esta solución "ataca" el problema ejecutando solo un determinado script de Python (dentro del IDE de PyCharm) en modo raíz, y no toda la aplicación de PyCharm.

1) Deshabilitar requiere contraseña para ejecutar Python:

Esto se logrará editando el /etc/sudoers.d/python expediente. Lo que debemos hacer es agregar una entrada en ese archivo de la siguiente manera:

user host = (root) NOPASSWD: full_path_to_python , por ejemplo:

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

NOTAS:

user puede ser detectado por el comando:whoami

host puede ser detectado por el comando:hostname

2) Crear un "secuencia de comandos sudo":el propósito de esta secuencia de comandos es otorgar privilegios a python para que se ejecute como usuario root.

Cree un script llamado python-sudo.sh y agregue lo siguiente:

!#/bin/bash

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

Tenga en cuenta, nuevamente, que la ruta es la ruta a su Python como la fase anterior.

No olvide dar permisos de ejecución a este script usando el comando:chmod , es decir-

chmod +x python-sudo.sh

3) Uso el python-sudo.sh script como su intérprete de PyCharm:

Dentro de PyCharm, vaya a:File --> Settings --> Project interpreter

En la parte superior derecha, haga clic en el icono de "configuración" y haga clic en "Agregar local".

En la opción del navegador elige el python-sudo.sh script que hemos creado previamente. Esto le dará a PyCharm el privilegio de ejecutar un script de python como root.

4) Depurar la prueba:todo lo que queda por hacer es depurar el script de Python específico en el IDE de PyCharm. Esto se puede hacer fácilmente haciendo clic derecho en el script para depurar --> presione "Debug sample_script_to_debug.py"

Espero que haya sido útil y avíseme si hay algún error en este enfoque.

Chico.


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

Más sobre gksudo

Si estás en ubuntu y no tienes gksudo instalarlo usando:

apt-get install gksu

Aquí hay un ejemplo de configuración del lanzador (bajo:~/.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 edición comunitaria, la tuya puede diferir.

Linux
  1. Ejecutar secuencia de comandos con ". ¿Y con “fuente”?

  2. ¿Cómo saber que estoy corriendo en un Chroot?

  3. ¿Comprobar que se está ejecutando un script?

  4. ¿Detectar si la tecla se presiona desde el script?

  5. ¿Desde dónde se ejecuta un script de Shell?

¿Cómo enumerar las sesiones de pantalla en ejecución?

Ejecutar script de shell en paralelo

Ejecutar un script de Python desde PHP

La ejecución del script de Python a través de systemd no puede cargar el módulo

¿Cómo puedo especificar un disco diferente para que sea root en grub.cfg cuando ejecuto grub-mkconfig (desde script/no interactivo)?

¿Es posible recuperar el contenido de un script bash en ejecución desde la RAM?