Je veux courir ifup eth0 et ifdown eth0 sans sudo en utilisant Linux capabilitiesFor le même problème que j'ai le code écrit pour la même main.cRun ifupdown avec sudo en utilisant la capacité de Linux
int main{
FILE ,*fp;
fp = popen("ifdown eth0","r");
if(fp==NULL)
{
printf("popen falied\n")
}
pclose(fp);
}
Si je définir des capacités en binaire comme suit:
sudo setcap -v cap_chown,cap_dac_override,cap_fowner,cap_dac_read_search,cap_net_admin+epi main
toutes les fonctionnalités sont définies, il est vérifié en utilisant la commande getcap
getcap main
main = cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_net_admin+eip
Si exécuter code ci-dessus je me réponse suivante:
./main ifdown: failed to open lockfile /run/network/ifstate.eth0: Autorisation refusée
quelqu'un peut me aider sur ce ?