#define _GNU_SOURCE #include #include int initgroups(const char *user, gid_t gid) { gid_t groups[NGROUPS_MAX]; int count = NGROUPS_MAX; if (getgrouplist(user, gid, groups, &count) < 0) return -1; return setgroups(count, groups); }