+ /*
+ * Only allow those in group zero to su to root.
+ */
+ if (pwd->pw_uid == 0) {
+ struct group *gr;
+ int i;
+
+ if ((gr = getgrgid(0)) != NULL) {
+ for (i = 0; gr->gr_mem[i] != NULL; i++)
+ if (strcmp(buf, gr->gr_mem[i]) == 0)
+ goto userok;
+ fprintf(stderr, "You do not have permission to su %s\n",
+ user);
+ exit(1);
+ }
+ userok:
+ setpriority(PRIO_PROCESS, 0, -2);
+ }
+