尝试使用 Linux 功能运行 ifup 和 ifdown

尝试使用 Linux 功能运行 ifup 和 ifdown

我想使用 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: failed to open lockfile /run/network/ifstate.eth0: Permission denied 

尽管我已经设置了权限功能,但仍然收到权限被拒绝错误。

有人能帮我吗?

相关内容