【发布时间】:2018-02-14 11:04:00
【问题描述】:
我想使用 Linux 功能在不使用 sudo 的情况下运行 ifup eth0 和 ifdown eth0 对于同一个问题,我已经为同一个 main.c 编写了代码
int main{
FILE ,*fp;
fp = popen("ifdown eth0","r");
if(fp==NULL)
{
printf("popen falied\n")
}
pclose(fp);
}
如果我将功能设置为二进制,如下所示:
sudo setcap -v cap_chown,cap_dac_override,cap_fowner,cap_dac_read_search,cap_net_admin+epi main
所有功能都设置好了,通过getcap命令验证
getcap main
main = cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_net_admin+eip
如果运行上面的代码,我会得到以下回复:
./main ifdown: 未能打开锁文件 /run/network/ifstate.eth0: 权限被拒绝
有人可以帮我吗?
【问题讨论】:
标签: linux sudo linux-capabilities