- for (i=0; uid && gr->gr_mem[i]; i++)
- if (!(strcmp(name, gr->gr_mem[i])))
- ingroup = 1;
- if (!ingroup && uid) {
- printf("illegal group: %s\n",argv[1]);
- exit(4);
+ if (uid && pwd->pw_gid != gid) {
+ for (i=0; gr->gr_mem[i]; i++)
+ if (!(strcmp(pwd->pw_name, gr->gr_mem[i])))
+ goto ok;
+ fprintf(stderr, "You are not a member of the %s group.\n",
+ argv[0]);
+ exit(2);