我想使用 Eclipse/PyDev 调试必须以 root 身份运行的应用程序。我发现了这个:在 PyDev/LiClipse 中使用 root 调试项目,并按照答案 #2 中的说明进行操作,但遇到了问题。特别是当我尝试将项目的解释器设置为指定的脚本时(见下文),Eclipse 抛出了错误。
这是设置:
dnessett@homelserv:~$ cd SaltSource/
dnessett@homelserv:~/SaltSource$ cd scripts/
dnessett@homelserv:~/SaltSource/scripts$ ls -al
total 12
drwxrwxr-x 2 dnessett dnessett 4096 Oct 1 13:51 .
drwxrwxr-x 4 dnessett dnessett 4096 Oct 1 13:49 ..
-rwxrwxrwx 1 dnessett dnessett 29 Oct 1 13:51 python_on_root.sh
dnessett@homelserv:~/SaltSource/scripts$
dnessett@homelserv:~/SaltSource/scripts$ cat python_on_root.sh
#!/bin/bash
sudo python "$@"
dnessett@homelserv:/etc$ sudo cat sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
Defaults use_pty
...
#add python to sudo list
dnessett homelserv=(root)NOPASSWD:/home/dnessett/.pyenv/versions/3.10.15/bin/python
# See sudoers(5) for more information on "@include" directives:
@includedir /etc/sudoers.d
请注意,我修改了 sudoers 文件,因此该条目绑定到计算机名称而不是“ALL”。
当我尝试将脚本添加到项目解释器列表时,
我收到以下错误消息:
任何人都可以看到我做错了什么吗?
使用 sudo 作为 python 解释器的脚本不起作用。 Eclipse/PyDev 不会接受它。然而,我找到了另一种方法来实现这一目标。使用 pyenv 为项目选择特定的 python 解释器,我深入了解该解释器所在的路径。然后我将其更改为 root 所有权并打开 setuid 位。然后,我将这个 python 解释器路径提供给 Eclipse/PyDev,它会接受它。您必须将 .pydev 软链接到 dotpydev,因为 Eclipse/PyDev 解释器选择协议不会列出点文件。
我仍在测试这种方法,如果成功,我将发表评论(如果不成功,我将发表评论)。现在测试停留在 Eclipse/PyDev 上,找不到应用程序所需的模块。我将这个问题发布在另一个线程中,因为它与在项目中以 root 身份运行 python 代码没有直接关系