|
|
1.1 ! root 1: #include <stdio.h> ! 2: #include <pwd.h> ! 3: #include <grp.h> ! 4: ! 5: main() ! 6: { ! 7: int uid, gid, euid, egid; ! 8: static char stdbuf[BUFSIZ]; ! 9: ! 10: setbuf (stdout, stdbuf); ! 11: ! 12: uid = getuid(); ! 13: gid = getgid(); ! 14: euid = geteuid(); ! 15: egid = getegid(); ! 16: ! 17: puid ("uid", uid); ! 18: pgid (" gid", gid); ! 19: if (uid != euid) ! 20: puid (" euid", euid); ! 21: if (gid != egid) ! 22: pgid (" egid", egid); ! 23: putchar ('\n'); ! 24: return 0; ! 25: } ! 26: ! 27: puid (s, id) ! 28: char *s; ! 29: int id; ! 30: { ! 31: struct passwd *pw; ! 32: struct passwd *getpwuid(); ! 33: ! 34: printf ("%s=%d", s, id); ! 35: setpwent(); ! 36: pw = getpwuid(id); ! 37: if (pw) ! 38: printf ("(%s)", pw->pw_name); ! 39: } ! 40: ! 41: pgid (s, id) ! 42: char *s; ! 43: int id; ! 44: { ! 45: struct group *gr; ! 46: struct group *getgrgid(); ! 47: ! 48: printf ("%s=%d", s, id); ! 49: setgrent(); ! 50: gr = getgrgid(id); ! 51: if (gr) ! 52: printf ("(%s)", gr->gr_name); ! 53: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.