Index: mac_portacl.c =================================================================== --- mac_portacl.c +++ mac_portacl.c @@ -103,9 +103,13 @@ SYSCTL_INT(_security_mac_portacl, OID_AUTO, port_high, CTLFLAG_RWTUN, &portacl_port_high, 0, "Highest port to enforce for"); +static int portacl_gid_only = 0; +SYSCTL_INT(_security_mac_portacl, OID_AUTO, gid_only, CTLFLAG_RW, + &portacl_gid_only, 0, "Check only given gid"); + static MALLOC_DEFINE(M_PORTACL, "portacl_rule", "Rules for mac_portacl"); -#define MAC_RULE_STRING_LEN 1024 +#define MAC_RULE_STRING_LEN 2621500 #define RULE_GID 1 #define RULE_UID 2 @@ -437,6 +441,10 @@ struct inpcb *inp; int family, type; u_int16_t port; + + /* Gid only check */ + if (portacl_gid_only != 0 && cred->cr_gid != portacl_gid_only) + return (0); /* Only run if we are enabled. */ if (portacl_enabled == 0)