Você pode definir recursos em seu programa. Isso permitiria executar certas tarefas privilegiadas sem a necessidade de executar completamente como root
. A capacidade em questão aqui é CAP_NET_ADMIN
:
CAP_NET_ADMIN
Perform various network-related operations:
* interface configuration;
* administration of IP firewall, masquerading, and accounting;
* modify routing tables;
* bind to any address for transparent proxying;
* set type-of-service (TOS)
* clear driver statistics;
* set promiscuous mode;
* enabling multicasting;
* use setsockopt(2) to set the following socket options: SO_DEBUG, SO_MARK,
SO_PRIORITY (for a priority outside the range 0 to 6), SO_RCVBUFFORCE, and
SO_SNDBUFFORCE.
Você encontrará mais informações sobre os recursos nas páginas de manual capabilities(7)
e setcap(8)
.
Para garantir isso ainda mais, caso você precise apenas de um subconjunto específico de usuários para executar este programa, você pode colocar esses usuários em um grupo, chgrp
seu programa neste grupo e chmod
em 0750
.