static void mgt_sandbox_solaris_init(enum sandbox_e who) { priv_set_t *priv_all; if (! (priv_all = priv_allocset())) { REPORT(LOG_ERR, "Sandbox warning: " " mgt_sandbox_init - priv_allocset failed: errno=%d (%s)", errno, strerror(errno)); return; } priv_emptyset(priv_all); mgt_sandbox_solaris_add_inheritable(priv_all, who); mgt_sandbox_solaris_add_effective(priv_all, who); mgt_sandbox_solaris_add_permitted(priv_all, who); mgt_sandbox_solaris_add_initial(priv_all, who); /* try to get all possible privileges, expect EPERM here */ setppriv_assert(setppriv(PRIV_ON, PRIV_PERMITTED, priv_all)); setppriv_assert(setppriv(PRIV_ON, PRIV_EFFECTIVE, priv_all)); setppriv_assert(setppriv(PRIV_ON, PRIV_INHERITABLE, priv_all)); priv_freeset(priv_all); }
void mgt_sandbox_solaris_init(void) { priv_set_t *priv_all; if (! (priv_all = priv_allocset())) { REPORT(LOG_ERR, "Child start warning: mgt_sandbox_init - priv_allocset failed: errno=%d (%s)", errno, strerror(errno)); return; } priv_emptyset(priv_all); mgt_sandbox_solaris_add_effective(priv_all); mgt_sandbox_solaris_add_permitted(priv_all); mgt_sandbox_solaris_add_initial(priv_all); setppriv(PRIV_ON, PRIV_PERMITTED, priv_all); setppriv(PRIV_ON, PRIV_EFFECTIVE, priv_all); setppriv(PRIV_ON, PRIV_INHERITABLE, priv_all); priv_freeset(priv_all); }