调试中pyCharm使用sudo特权?(Debugging in pyCharm with sudo

2019-08-06 15:22发布

我测试过,需要在root访问权限的代码pyCharm通过运行sudo pycharm.sh但这不是我会建议这样做的方式。

我知道这是可能使用sudo权限来调试由pyCharm运行Python解释器作为须藤但是我们如何做到这一点?

Answer 1:

创建一个shell脚本,做“sudo的蟒蛇”,并转发参数,配置脚本是PyCharm Python解释器。

这个shell脚本的名称应该开始python (:源http://forum.jetbrains.com/message/PyCharm-424-3 )。



Answer 2:

对于它的价值,我已经成功运行使用sudo权限的(在Ubuntu 16.04)这样的python脚本:

  1. 在脚本中的第一行,这样定义的解释:

    #!/usr/bin/sudo python

  2. 使脚本可执行:

    chmod +x myscript.py

  3. 直接运行脚本, 而不指定python自己的解释:

    ./myscript.py

  4. 该脚本会要求输入sudo密码,并继续提升权限的运行。


Answer 3:

我遇到的另一种方式,所以我想分享它(这个回答更像是其他答案的替代)来解决这个问题。

这是值得在这里指出,这种解决方案“攻击”运行仅在根模式一定的Python脚本(在pycham IDE内),而不是整个pycharm应用程序的问题。

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

这将通过编辑/etc/sudoers.d/python文件中achived。 我们需要做的是在该文件中添加如下条目:

用户主机=(根)NOPASSWD:full_path_to_python,例如:

guya ubuntu = (root) NOPASSWD: /usr/bin/python

笔记:

user可以通过命令来检测: whoami

host能够通过命令来检测: hostname

2)创建 “命令脚本”:这个脚本的目的是给蟒蛇特权作为root用户运行。

创建一个名为python-sudo.sh脚本,并添加以下到它:

#!/bin/bash
sudo /usr/bin/python "$@"

再次注意,path是您的Python作为前一个阶段。

不要忘了给执行权限使用命令该脚本: chmod

chmod +x python-sudo.sh

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

在pycharm请访问: File --> Settings --> Project interpreter

在右上角的右手边点击“设置”图标,并点击“添加本地”。

在浏览器选项选择我们先前创建的python-sudo.sh脚本。 这将给PyCharm的特权运行python脚本作为根。

4)调试测试:所有有剩下要做的就是实际调试中pycharm IDE特定的Python脚本。 在脚本调试这可以很容易地通过做右击- >打Debug sample_script_to_debug.py

希望这是有益的,让我知道,如果有这种方法的任何错误。

干杯,

盖伊。



Answer 4:

我通过复制解决了这个问题/usr/bin/python3在我家,然后设置cap_net_bind_service能力:

cp /usr/bin/python3 ~/python35-setcap
sudo setcap 'cap_net_bind_service=+ep' ~/python35-setcap

然后用~/python35-setcap在pycharm Python解释器。

通过这种方式,可以绑定下端口,但没有任何的Python 3程序可以做到这一点,并pycharm仍然可以杀死你的脚本。 你也可以限制,如果你想更安全的执行权限给自己。



Answer 5:

我曾经遇到过试图在树莓派调试蓝牙相关的代码相同的问题。 我想,因为你的设备上执行远程调试,该设备仅用于开发使用。 在这种情况下,我的卑微的选择,你应该允许SSH root登录,这样你就可以配置PyCharm使用root用户,你不需要须藤。 这是我所选择的解决方案。

以下说明是针对覆盆子裨,但程序为任何Linux分发相同的:

首先,添加你的公钥的authorized_keys

cat ~/.ssh/id_rsa.pub | ssh pi@raspberrypi "mkdir -p ~/.ssh && cat >> 
~/.ssh/authorized_keys"

然后登录到树莓派:

ssh pi@raspberrypi

一旦你有一个控制台复制你的钥匙到root目录:

sudo mkdir /root/.ssh
sudo cp authorized_keys /root/.ssh/

最后编辑sshd_config添加PermitRootLogin without-password

sudo vim /etc/ssh/sshd_config

使用您的首选编辑器。

现在,您可以到树莓派内ssh作为根:

ssh root@raspberrypi

使用root代替或pi用户,给你运行你的代码,甚至是远程,使用root权限,如要求的的BlueZ能力。



Answer 6:

在PyCharm新版本,它有一个配置在根目录下运行Python解释器,无需解决方法。 见下图。 检查复选框:使用此解释器通过sudo root权限执行代码



Answer 7:

终奌站:

sudo ./Pycharm

这样,你就可以开始PyCharm作为超级用户



文章来源: Debugging in pyCharm with sudo privileges?
标签: linux pycharm