C++ Linux、Eclipse CDT作为su运行
我正在使用EclipseCDT编写一个应用程序。应用程序使用第三部分API,它需要以sudo的形式运行,以便打开原始套接字等 在命令行中,我可以运行如下程序C++ Linux、Eclipse CDT作为su运行,c++,eclipse,C++,Eclipse,我正在使用EclipseCDT编写一个应用程序。应用程序使用第三部分API,它需要以sudo的形式运行,以便打开原始套接字等 在命令行中,我可以运行如下程序 su ./program 但在EclipseCDT环境中,如果我按Ctrl+F11(Run->Run Last Launched),它将不起作用,我想原因是我的Linux GUI登录不是su 在EclipseCDT中,我是否可以作为su(使用su密码)运行 谢谢。您有一些选择: 以root用户身份运行Eclipse。(不是一个很好的主意,
su
./program
但在EclipseCDT环境中,如果我按Ctrl+F11(Run->Run Last Launched),它将不起作用,我想原因是我的Linux GUI登录不是su
在EclipseCDT中,我是否可以作为su(使用su密码)运行
谢谢。您有一些选择:
您可以创建一个运行配置,在其中使用sudo运行应用程序。由于以这种方式启动时,
sudo
无法访问终端,因此需要在启动配置中设置sudo\u ASKPASS
环境变量。步骤如下:
/usr/bin/sudo
/bin/my executable
。注意:sudo
的工作目录是eclipse项目,因此路径应该是相对于该项目的/bin/my executable arg1 arg2
sudo
添加询问密码的方法
sudo
没有终端(tty),因此我们需要为其提供一个可以获取密码的程序,即askpass程序。有关详细信息,请参阅ssh askpass gnome
提供了一个askpass程序,我通过运行dpkg--get selections | grep askpass
发现了这一点。因为它仍然没有给我可执行文件的名称,所以我通过运行brute强制执行搜索
sudo find-name*askpass*
。无论如何,如果没有安装这样的实用程序,请使用您喜爱的软件包管理器搜索它SUDO_ASKPASS
作为名称,输入ASKPASS程序的完整路径作为值,例如/usr/bin/ssh ASKPASS
sudo
密码