Estou tendo um tempo bastante frustrante para que o dhclient seja executado a partir de um usuário normal usando o setcap. Por causa do ambiente com o qual estou trabalhando, adicionar aos sudoers não é uma opção.
Minha tentativa:
sudo setcap 'CAP_NET_BIND_SERVICE,CAP_NET_RAW=+ep' /sbin/dhclient
Em seguida, confirmei com getcap que os recursos estavam de fato configurados corretamente. Mas quando eu corro eu recebo uma operação não permitida. Eu então corri sob strace e que mostra vários socket(PF_NETLINK, SOCK_RAW, 0) = 4
entre outros syscalls e termina com socket(PF_PACKET, SOCK_RAW, 768) = -1 EPERM (Operation not permitted)
Tudo o que eu li no PF_PACKET diz que só precisa de cap_net_raw.
Linux 3.16.0-77-generic #99~14.04.1-Ubuntu SMP Tue Jun 28 19:17:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Tags dhcp linux capabilities