从启动器以root身份运行Pycharm

19

如何通过启动器以root权限运行Pycharm?

我可以在终端窗口中使用sudo ./pycharm.sh来实现,但我希望可以直接从启动器中完成同样的操作。


1
我不熟悉PyCharm,但这篇文章可能是你在寻找的:http://esmithy.net/2015/05/05/rundebug-as-root-in-pycharm/ - Ed Jones
7个回答

17

我发现了解决这个问题的另一种方法,所以想要分享一下(这个答案更像是其他答案的替代品)。

值得一提的是,这种解决方案通过仅以root模式运行某个Python脚本来“攻击”问题,而不是整个PyCharm应用程序。

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

推荐使用 visudo 程序编辑文件以确保语法正确。否则可能会被锁定无法使用 sudo 。

visudo /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中,转到:文件-->设置-->项目解释器

在右上方单击“设置”图标,然后单击“添加本地”。

在浏览器选项中选择我们之前创建的python-sudo.sh脚本。这将使PyCharm有权以root身份运行Python脚本。

4) 调试测试:剩下的就是在PyCharm IDE中实际调试特定的Python脚本。只需右键单击要调试的脚本-->点击“Debug sample_script_to_debug.py”即可轻松完成。


4
这对我没起作用,它破坏了我的sudoers文件,这是一次冒险......还有PyCharm(和IntelliJ)报错“invalid interpreter”,所以我还是尝试了一下,但它根本不起作用。我对此评分为-1(这是在Ubuntu上的情况)。 - 255.tar.xz
这对我有用,在项目文件夹中: sudo chmod -R 777 ./ - Ruben Acevedo

10

尝试使用: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表示社区版,你的可能不同。

谢谢,但如果可能的话,我想避免进入终端窗口,并直接从启动器图标以 root 身份运行。 - Zorgmorduk
是的,它会以我的当前用户身份启动应用程序,而不是root。 - Zorgmorduk
1
谢谢,这正是我在寻找的! - Zorgmorduk
对于Flatpak Pycharm安装怎么样? - ubiquibacon

2
截至本文发布时(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

这意味着每个 Python 脚本都将具有 root 权限。虽然这是问题的正确答案,但我不会实现这个解决方案,因为它非常危险。 - Thecave3

2
我需要在PyCharm中以root身份运行脚本,但是接受的答案对我没有用,因为1.)我是通过flatpak安装PyCharm的,2.)在较新版本的Ubuntu和Mint上,gksu命令不可用。
我无法找到一种方法来使flatpak安装与此相一致,所以我卸载了PyCharm flatpak,然后以“正常”的方式重新安装了PyCharm。接受的答案依赖于gksu命令,而该命令在我的操作系统(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
pkexec命令会在您通过.desktop文件启动PyCharm时弹出一个提示窗口,要求您输入密码。

1
这是一个示例 Git 仓库,是如何实现此操作的概念验证。只需按照 README.md 中的说明即可。我的团队需要为我们的某个产品执行此操作,并将其用作工作流程。希望对您有所帮助!https://github.com/samayer12/sudome 此答案基于 Ed Jones 首次指出的 此处 描述。

0

简单的解决方案: 在项目文件夹中:

sudo chmod -R 777 ./ 

这只是赋予写入权限。


0

我有Pycharm-community 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接