我想给一个正在运行的进程sudo权限。 就像我正常打开日食一样。现在,当我在eclipse上启动我的服务器时,它需要sudo权限,但为此我必须关闭eclipse,然后用sudo eclipse打开它以获得sudo权限。 我尝试设置/ usr / bin / eclipse的setuid和setgid但是没有用。我不知道为什么它不起作用。
答案 0 :(得分:0)
Setuid / setgid不起作用,因为内核在创建进程时使用这些文件掩码位,以便为其提供提升的权限。
如果不向内核添加主要功能,我不相信这是可能的。
答案 1 :(得分:0)
我认为你的意思是“root权限”。在称为“Eclipse”的大量代码上设置SUID root并不是一个好主意。
您需要的是SUID包装器,它必须是二进制文件。嗯,那就是sudo。但是sudo要求你输入密码。您需要使用-A开关运行它,并将SUDO_ASKPASS环境变量设置为/ usr / bin / x11-ssh-askpass。然后,您将获得GUI弹出窗口,询问您的密码,然后生成的程序将以提升的权限运行。
这与更改已经运行的进程的权限不同,这是您的问题标题所暗示的。那是你做不到的,AFAIK。