我测试过需要在pyCharm
中运行sudo pycharm.sh
才能进行root访问的代码,但这不是我推荐的方式。使用sudo权限在pyCharm中进行调试?
我知道可以通过在pyCharm中运行python解释器作为sudo来调试sudo特权,但我们该怎么做?
我测试过需要在pyCharm
中运行sudo pycharm.sh
才能进行root访问的代码,但这不是我推荐的方式。使用sudo权限在pyCharm中进行调试?
我知道可以通过在pyCharm中运行python解释器作为sudo来调试sudo特权,但我们该怎么做?
创建一个shell脚本,它执行“sudo python”并转发参数,并将该脚本配置为PyCharm中的Python解释器。
此shell脚本的名称应以python
(来源:http://forum.jetbrains.com/message/PyCharm-424-3)开头。
对于它的价值,我已经成功运行使用sudo权限的(在Ubuntu 16.04)python脚本是这样的:
在脚本中的第一行,这样定义的解释:
#!/usr/bin/sudo python
使脚本可执行:
chmod +x myscript.py
运行脚本直接,没有指定python
解释自己:
./myscript.py
终端:
Sudo ./Pycharm
这样你就可以开始PyCharm作为超级用户
我遇到另一种方式来解决这个问题,所以我想分享它(这个答案更喜欢另类为其他答案)。
这里值得一提的是,这个解决方案通过在root模式下运行一个特定的Python脚本(在pycham IDE中)而不是整个pycharm应用程序来“攻击”这个问题。
1)禁用需要密码来运行的Python:
这将通过编辑/etc/sudoers.d/python文件中achived。我们需要做的是在该文件中添加一个条目,如下所示:
用户主机=(根)NOPASSWD:full_path_to_python,例如:
谷芽Ubuntu的=(根)NOPASSWD在/ usr/bin中/ Python的
NOTES:
用户可以通过命令来检测:WHOAMI
主机可以通过命令来检测:主机名
2)创建“命令脚本”:这个脚本的目的是给蟒蛇特权作为root用户运行。
创建一个名为python-sudo.sh脚本,并添加以下到它:
须藤的/ usr/bin中/ Python的 “$ @”
注再次说明,该路径是上一阶段Python的路径。
不要忘了给执行权限使用命令thsi脚本权限:chmod
使用chmod + X python-sudo.sh
3)使用python-sudo.sh脚本作为pycharm interpeter:
在pycharm去:文件 - >设置 - >项目解释
在右上角的右手边点击“设置”图标,并点击“添加本地”。
在浏览器选项中选择我们之前创建的python-sudo.sh脚本。这将使pycharm有权以root身份运行python脚本。
4)调试测试:剩下要做的事情实际上是在pycharm IDE中调试特定的Python脚本。这可以很容易地完成通过右键单击脚本进行调试 - >点击“调试sample_script_to_debug.py”
希望它是有用的,让我知道这种方法是否有任何错误。
干杯,
盖伊。
请注意,我的意思是#!/ bin/bash在python-sudo.sh脚本(出于某种原因它显示为它)。 –
我在我家复制/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仍然可以杀死你的脚本。如果您想要更高的安全性,您还可以限制执行权限。
你终于解决了这个问题吗?如果我运行sudo pycharm.sh,pycharm将被重新安装并重新配置... –