Linux 从启动器以root身份运行Pycharm

Linux 从启动器以root身份运行Pycharm,linux,ubuntu,pycharm,root,sudo,Linux,Ubuntu,Pycharm,Root,Sudo,如何以root权限从启动器运行Pycharm 我可以在终端窗口中使用sudo./pycharm.sh,但我想直接从启动器中执行同样的操作。尝试:gksudo./path/to/pycharm/executable 更多关于 如果您在ubuntu上,并且没有gksudo,请使用以下方法安装它: apt-get install gksu 下面是一个示例启动器配置(位于:~/.local/share/applications/jetbrains Pyce.desktop): ce表示社区版,您的可

如何以root权限从启动器运行Pycharm


我可以在终端窗口中使用
sudo./pycharm.sh
,但我想直接从启动器中执行同样的操作。

尝试:
gksudo./path/to/pycharm/executable

更多关于

如果您在ubuntu上,并且没有
gksudo
,请使用以下方法安装它:

apt-get install gksu
下面是一个示例启动器配置(位于:
~/.local/share/applications/jetbrains Pyce.desktop
):

  • ce
    表示社区版,您的可能不同

我遇到了解决这个问题的另一种方法,所以我想与大家分享一下(这个答案更像是其他答案的替代品)

值得一提的是,该解决方案通过在root模式下仅运行某个Python脚本(在PyCharm IDE中)而不是整个PyCharm应用程序来“攻击”该问题

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

这将通过编辑
/etc/sudoers.d/python
文件来实现。我们需要做的是在该文件中添加一个条目,如下所示:

user host=(root)NOPASSWD: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中,转到:
文件-->设置-->项目解释器

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

在浏览器选项中,选择前面创建的
pythonsudo.sh
脚本。这将赋予PyCharm以root身份运行python脚本的权限

4)调试测试:剩下要做的就是在PyCharm IDE中调试特定的Python脚本。这可以通过右键单击要调试的脚本-->点击“调试示例\u脚本\u到\u debug.py”轻松完成

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

Guy.

截至本帖(2018年6月28日),我正在Ubuntu 18.04 Bionic Beaver上运行Pycharm-2018.1.4。对我有效的解决方案是编辑
sudoers.d
文件,并在最后一行添加以下内容:

user host=(root)NOPASSWD:python的完整路径

例如:


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

我需要从PyCharm运行一个脚本,就像OP一样,但是被接受的答案对我不起作用,因为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

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

我有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运行

注意: 原始桌面启动器(仍在那里):


下面是一个git回购的示例,它是如何实现这一点的概念证明。应该像遵循
README.md
中的说明一样简单。我的团队需要为我们的一个产品这样做,我们将其作为工作流程

希望这有帮助


这个答案建立在Ed Jones首先指出的描述基础上。

谢谢,但我想避免进入终端窗口,如果可能的话,直接从启动器图标以root用户身份运行。是的,它以我当前的用户身份启动应用程序,而不是root用户。谢谢,这正是我要找的!安装flatpak Pycharm怎么样?我不熟悉Pycharm,但这篇文章可能正是你想要的:这对我不起作用,它破坏了我的sudoers文件,这是一次冒险。。。随着PyCharm(和IntelliJ)吐出
无效的解释器
&所以我还是试了一下,就是不起作用-1从我这里(这是在ubuntu btw上)这意味着每个python脚本都有根权限。虽然这是对这个问题的正确回答,但我不会实施这个解决方案,因为它确实很危险。
/var/lib/snapd/desktop/applications/root_pycharm-community_pycharm-community.desktop
[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