如何通过启动器以root权限运行Pycharm?
我可以在终端窗口中使用sudo ./pycharm.sh
来实现,但我希望可以直接从启动器中完成同样的操作。
我发现了解决这个问题的另一种方法,所以想要分享一下(这个答案更像是其他答案的替代品)。
值得一提的是,这种解决方案通过仅以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”即可轻松完成。
尝试使用: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
表示社区版,你的可能不同。sudoers.d
文件,并将以下内容添加到最后一行:
user host = (root) NOPASSWD: full_path_to_python
例如:
guya surface-pro = (root) NOPASSWD /usr/bin/python3.6
gksu
命令不可用。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时弹出一个提示窗口,要求您输入密码。README.md
中的说明即可。我的团队需要为我们的某个产品执行此操作,并将其用作工作流程。希望对您有所帮助!https://github.com/samayer12/sudome
此答案基于 Ed Jones 首次指出的 此处 描述。简单的解决方案: 在项目文件夹中:
sudo chmod -R 777 ./
这只是赋予写入权限。
我有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