Index: fusl/src/misc/initgroups.c |
diff --git a/fusl/src/misc/initgroups.c b/fusl/src/misc/initgroups.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..922a958142b0ad7b1f331f30725ecec29b91a309 |
--- /dev/null |
+++ b/fusl/src/misc/initgroups.c |
@@ -0,0 +1,11 @@ |
+#define _GNU_SOURCE |
+#include <grp.h> |
+#include <limits.h> |
+ |
+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); |
+} |