GNU/Linux >> Znalost Linux >  >> Linux

Spuštění Pycharm jako root ze spouštěče

Od tohoto příspěvku (28. června 2018) používám Pycharm-2018.1.4 na Ubuntu 18.04 Bionic Beaver. Řešení, které pro mě fungovalo, bylo jednoduše upravit sudoers.d soubor a na poslední řádek přidejte následující:

user host = (root) NOPASSWD: full_path_to_python

například:

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


Potřeboval jsem spustit skript z PyCharm jako root jako OP, ale přijatá odpověď pro mě nefungovala, protože 1.) Nainstaloval jsem PyCharm přes flatpak a 2.) gksu příkaz není k dispozici na novějších verzích Ubuntu a Mintu.

Nemohl jsem najít způsob, jak zajistit, aby věci fungovaly konzistentně s instalací flatpak, takže jsem odinstaloval flatpak PyCharm a poté znovu nainstaloval PyCharm „normálním“ způsobem. Přijatá odpověď závisí na gksu příkaz, který není dostupný v mém OS (Mint 19.2). Naštěstí pkexec je vhodnou alternativou a byl již dostupný v mém systému. Poté jsem aktualizoval svůj spouštěcí soubor (~/.local/share/applications/PyCharm.desktop) následovně. Důležitým bitem je Exec řádek:

[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

pkexec příkaz způsobí, že se při každém spuštění PyCharm pomocí .desktop objeví vyskakovací okno s výzvou k zadání hesla soubor.


Narazil jsem na jiný způsob, jak tento problém vyřešit, a tak mě napadlo ho sdílet (tato odpověď je spíše jako alternativa k ostatním odpovědím).

Stojí za zmínku, že toto řešení „útočí“ na problém spuštěním pouze určitého skriptu Python (v rámci IDE PyCharm) v režimu root a nikoli celé aplikace PyCharm.

1) Zakázat vyžadující heslo pro spuštění Pythonu:

Toho dosáhnete úpravou /etc/sudoers.d/python soubor. Co musíme udělat, je přidat položku do tohoto souboru následovně:

user host = (root) NOPASSWD: full_path_to_python , například:

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

POZNÁMKY:

user lze zjistit příkazem:whoami

host lze zjistit příkazem:hostname

2) Vytvořit a "sudo script":Účelem tohoto skriptu je poskytnout pythonu oprávnění ke spuštění jako uživatel root.

Vytvořte skript s názvem python-sudo.sh a přidejte do něj následující:

!#/bin/bash

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

Všimněte si znovu, že cesta je cesta k vašemu Pythonu jako v předchozí fázi.

Nezapomeňte udělit oprávnění ke spuštění tohoto skriptu pomocí příkazu:chmod , tj. -

chmod +x python-sudo.sh

3) Použijte python-sudo.sh skript jako váš interpret PyCharm:

V rámci PyCharm přejděte na:File --> Settings --> Project interpreter

V pravé horní části klikněte na ikonu „nastavení“ a klikněte na „Přidat místní“.

V možnosti prohlížeče vyberte python-sudo.sh skript, který jsme vytvořili dříve. To dá PyCharm oprávnění spouštět python skript jako root.

4) Ladění test:Vše, co zbývá udělat, je skutečně odladit konkrétní skript Python v IDE PyCharm. To lze snadno provést kliknutím pravým tlačítkem myši na skript pro ladění --> klikněte na "Debug sample_script_to_debug.py"

Doufám, že to bylo užitečné, a dejte mi vědět, pokud jsou v tomto přístupu nějaké chyby.

Chlape.


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

Další informace o gksudo

Pokud používáte ubuntu a nemáte gksudo nainstalujte jej pomocí:

apt-get install gksu

Zde je příklad konfigurace spouštěče (pod:~/.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 označuje vydání komunity, vaše se může lišit.

Linux
  1. Spuštění skriptu s „. “ A se „zdrojem“?

  2. Jak zjistit, že běžím v Chrootu?

  3. Kontrola, zda skript běží?

  1. Stát se rootem zevnitř Vimu?

  2. Spusťte bash skript z adresy URL

  3. Spuštění PHP skriptu z příkazového řádku jako proces na pozadí

  1. Ochrana před spuštěnými úkoly jménem root v Plesku 12

  2. Spuštění notify-send jako root

  3. Vyzvat uživatele k přihlášení jako root při spuštění skriptu shellu