1 #define _GNU_SOURCE 2 #include <grp.h> 3 #include <limits.h> 4 initgroups(const char * user,gid_t gid)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