Я хочу выполнить ifup eth0 и ifdown eth0 без sudo при помощи поддержки Linux.
Для той же проблемы я написал код для того же 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
хотя я установил возможности разрешения все еще, я добираюсь, разрешение отклонило ошибку.
Кто-то может помочь мне на этом?