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