initgroups()
Arkadiusz Miskiewicz
misiek@pld.org.pl
Wed Feb 9 00:48:00 GMT 2000
Small problem with initgroups():
misiek@dark misiek$ rpm -q glibc gcc
glibc-2.1.2-13
gcc-2.95.2-1
misiek@dark misiek$ LC_ALL=C id
uid=1000(misiek) gid=1000(users) groups=1000(users)
misiek@dark misiek$ gcc test.c -Wall -o test && LC_ALL=C ./test
initgroups("misiek", -1)
error Invalid argument
misiek@dark misiek$
AFAIK this should work ...
#include <stdio.h>
#include <unistd.h>
#include <grp.h>
#include <pwd.h>
#include <sys/types.h>
int main()
{
int ret;
struct passwd *pw;
pw = getpwuid(getuid());
printf("initgroups(\"%s\", -1)\n",pw->pw_name);
ret = initgroups(pw->pw_name, -1);
if (ret < 0)
printf("error %m\n");
else
printf("OK\n");
return 0;
}
More information about the Libc-alpha
mailing list