initgroups.c 255 B

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