ubuntu 从启动程序以根用户身份运行Pycharm

jaxagkaj  于 2022-11-02  发布在  PyCharm
关注(0)|答案(6)|浏览(288)

怎么可能以root权限从启动程序运行Pycharm?
我可以在终端窗口中使用sudo ./pycharm.sh执行此操作,但我希望直接在启动器中执行相同的操作。

a0zr77ik

a0zr77ik1#

我遇到了另一种解决这个问题的方法,所以我想分享它(这个答案更像是其他答案的替代方案)。
值得一提的是,这个解决方案通过在根模式下只运行某个Python脚本(在PyCharm IDE中)来“解决”这个问题,而不是整个PyCharm应用程序。

1)禁用运行Python需要密码:

这将通过编辑/etc/sudoers.d/python文件来实现。我们需要做的是在该文件中添加一个条目,如下所示:
user host = (root) NOPASSWD: full_path_to_python,例如:
guya ubuntu = (root) NOPASSWD /usr/bin/python
注:
user可通过以下命令检测:whoami
host可通过以下命令检测:hostname

2)创建一个“sudo脚本”:此脚本的目的是给予python以root用户身份运行的权限。

创建一个名为python-sudo.sh的脚本,并在其中添加以下内容:

!#/bin/bash

sudo /usr/bin/python "$@"

再次注意,路径是上一阶段Python的路径。
不要忘记使用以下命令为该脚本给予执行权限:chmod,即-
chmod +x python-sudo.sh

3)使用python-sudo.sh脚本作为PyCharm解释器:

在PyCharm中,转到:File --> Settings --> Project interpreter
在右上方点击“设置”图标,然后点击“添加本地”。
在浏览器选项中,选择我们之前创建的python-sudo.sh脚本,这将给予PyCharm以root用户身份运行python脚本的权限。

4)调试测试:剩下要做的就是在PyCharm IDE中调试特定的Python脚本了。

希望它是有帮助的,并让我知道,如果有任何错误,在这种方法。

afdcj2ne

afdcj2ne2#

尝试:gksudo ./path/to/pycharm/executable
关于gksudo的更多信息
如果你使用的是ubuntu,并且没有gksudo,可以使用以下命令安装它:

apt-get install gksu

以下是启动器配置示例(位于:~/.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表示社区版,您的版本可能有所不同。
gk7wooem

gk7wooem3#

在这篇文章发表之前(2018年6月28日),我正在Ubuntu 18.04 Bionic Beaver上运行Pycharm-2018.1.4,我的解决方案是编辑sudoers.d文件,并在最后一行添加以下内容:
user host = (root) NOPASSWD: full_path_to_python
例如:
guya surface-pro = (root) NOPASSWD /usr/bin/python3.6

cpjpxq1n

cpjpxq1n4#

我需要像OP一样以root用户身份从PyCharm运行一个脚本,但是公认的答案对我不起作用,因为1)我已经通过flatpak安装了PyCharm,2)gksu命令在Ubuntu和Mint的新版本上不可用。
我找不到一种方法来使事情工作与flatpak安装一致,所以我卸载了PyCharm flatpak,然后重新安装PyCharm的“正常”的方式。(Mint 19.2)。谢天谢地,pkexec是一个合适的替代品,并且已经在我的系统上可用。然后我更新了我的启动器文件(~/.local/share/applications/PyCharm.desktop),如下所示。最重要的一点是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

每次通过.desktop文件启动PyCharm时,pkexec命令都会弹出一个提示您输入密码的窗口。

bksxznpy

bksxznpy5#

这里有一个示例git repo,它是一个概念验证。应该像README.md中的说明一样简单。我的团队需要为我们的一个产品做这个,我们使用它作为工作流。
希望这对你有帮助!https://github.com/samayer12/sudome
这个答案建立在Ed Jones首先指出的描述here之上。

aemubtdh

aemubtdh6#

我有Pycharm社区2020。我编辑了

/var/lib/snapd/desktop/applications/pycharm-community_pycharm-community.desktop

带有nano的文件刚刚修改了桌面条目,如下所示:

[Desktop Entry]
X-SnapInstanceName=pycharm-community
Version=1.0
Type=Application
Name=root PyCharm Community Edition
Icon=/snap/pycharm-community/222/bin/pycharm.png
Exec=sudo env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/pycharm-community_pycharm-community.desktop /snap/bin/pycharm-community %f
Comment=root Python IDE for Professional Developers
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-pycharm-ce
StartupNotify=true

即:在EXEC项前面添加sudo命令,将“root”放在几个字段前面(见上文),并使用不同的名称保存:

/var/lib/snapd/desktop/applications/root_pycharm-community_pycharm-community.desktop

现在我在启动器中有两个图标,一个是标准的,另一个以“root”作为描述中的前导词,并以root身份运行。

**注意:**原始桌面启动程序(仍在):

[Desktop Entry]
X-SnapInstanceName=pycharm-community
Version=1.0
Type=Application
Name=PyCharm Community Edition
Icon=/snap/pycharm-community/222/bin/pycharm.png
Exec=env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/pycharm-community_pycharm-community.desktop /snap/bin/pycharm-community %f
Comment=Python IDE for Professional Developers
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-pycharm-ce
StartupNotify=true

相关问题