1#define _GNU_SOURCE
2#include <grp.h>
3#include <limits.h>
4
5int initgroups(const char* user, gid_t gid) {
6    gid_t groups[NGROUPS_MAX];
7    int count = NGROUPS_MAX;
8    if (getgrouplist(user, gid, groups, &count) < 0)
9        return -1;
10    return setgroups(count, groups);
11}
12