运行 Pycharm 作为启动器的 root

Running Pycharm as root from launcher

如何使用 root 权限从启动器 运行 Pycharm?

我可以使用 sudo ./pycharm.sh 从终端 window 执行此操作,但我想直接从启动器执行此操作。

尝试: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 中使用某个 Python 脚本(在 PyCharm IDE 中)来“解决”问题mode ,而不是整个 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 特权 运行 一个 python 脚本作为 root。

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

希望对您有所帮助,如果此方法有任何错误,请告诉我。

家伙。

截至本 post(2018 年 6 月 28 日)我是 运行 Pycharm-2018.1.4 Ubuntu 18.04 Bionic Beaver。对我有用的解决方案是简单地编辑 sudoers.d 文件并将以下内容添加到最后一行:

user host = (root) NOPASSWD: full_path_to_python

例如:

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

我需要 运行 来自 PyCharm 的脚本作为 root 就像 OP,但接受的答案对我不起作用,因为 1.) 我安装了 PyCharm 通过 flatpak 和 2.) gksu 命令在新版本的 Ubuntu 和 Mint 上不可用。

我找不到让 flatpak 安装一致的方法,所以我卸载了 PyCharm flatpak,然后重新安装 PyCharm "normal" 方式。接受的答案依赖于 gksu 命令,该命令在我的 OS (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 命令将导致弹出窗口提示您输入密码。

我有 Pycharm-社区 2020。 我编辑了

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

纳米文件 刚刚修改了桌面条目如下:

[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

这是一个示例 git 存储库,它是关于如何执行此操作的概念验证。应该像遵循 README.md 中的说明一样简单。我的团队需要为我们的一款产品执行此操作,我们将其用作工作流程。

希望对您有所帮助! https://github.com/samayer12/sudome

这个答案建立在描述 here 的基础上,Ed Jones 最先指出了这一点。