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.