id.c (216370) | id.c (219304) |
---|---|
1/*- 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 25 unchanged lines hidden (view full) --- 34#endif /* not lint */ 35 36#ifndef lint 37#if 0 38static char sccsid[] = "@(#)id.c 8.2 (Berkeley) 2/16/94"; 39#endif 40#endif /* not lint */ 41#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 25 unchanged lines hidden (view full) --- 34#endif /* not lint */ 35 36#ifndef lint 37#if 0 38static char sccsid[] = "@(#)id.c 8.2 (Berkeley) 2/16/94"; 39#endif 40#endif /* not lint */ 41#include <sys/cdefs.h> |
42__FBSDID("$FreeBSD: head/usr.bin/id/id.c 216370 2010-12-11 08:32:16Z joel $"); | 42__FBSDID("$FreeBSD: head/usr.bin/id/id.c 219304 2011-03-05 12:40:35Z trasz $"); |
43 44#include <sys/param.h> 45#include <sys/mac.h> 46 47#ifdef USE_BSM_AUDIT 48#include <bsm/audit.h> 49#endif 50 --- 18 unchanged lines hidden (view full) --- 69int isgroups, iswhoami; 70 71int 72main(int argc, char *argv[]) 73{ 74 struct group *gr; 75 struct passwd *pw; 76 int Gflag, Mflag, Pflag, ch, gflag, id, nflag, pflag, rflag, uflag; | 43 44#include <sys/param.h> 45#include <sys/mac.h> 46 47#ifdef USE_BSM_AUDIT 48#include <bsm/audit.h> 49#endif 50 --- 18 unchanged lines hidden (view full) --- 69int isgroups, iswhoami; 70 71int 72main(int argc, char *argv[]) 73{ 74 struct group *gr; 75 struct passwd *pw; 76 int Gflag, Mflag, Pflag, ch, gflag, id, nflag, pflag, rflag, uflag; |
77 int Aflag; | 77 int Aflag, cflag; 78 int error; |
78 const char *myname; | 79 const char *myname; |
80 char loginclass[MAXLOGNAME]; |
|
79 80 Gflag = Mflag = Pflag = gflag = nflag = pflag = rflag = uflag = 0; | 81 82 Gflag = Mflag = Pflag = gflag = nflag = pflag = rflag = uflag = 0; |
81 Aflag = 0; | 83 Aflag = cflag = 0; |
82 83 myname = strrchr(argv[0], '/'); 84 myname = (myname != NULL) ? myname + 1 : argv[0]; 85 if (strcmp(myname, "groups") == 0) { 86 isgroups = 1; 87 Gflag = nflag = 1; 88 } 89 else if (strcmp(myname, "whoami") == 0) { 90 iswhoami = 1; 91 uflag = nflag = 1; 92 } 93 94 while ((ch = getopt(argc, argv, | 84 85 myname = strrchr(argv[0], '/'); 86 myname = (myname != NULL) ? myname + 1 : argv[0]; 87 if (strcmp(myname, "groups") == 0) { 88 isgroups = 1; 89 Gflag = nflag = 1; 90 } 91 else if (strcmp(myname, "whoami") == 0) { 92 iswhoami = 1; 93 uflag = nflag = 1; 94 } 95 96 while ((ch = getopt(argc, argv, |
95 (isgroups || iswhoami) ? "" : "APGMagnpru")) != -1) | 97 (isgroups || iswhoami) ? "" : "APGMacgnpru")) != -1) |
96 switch(ch) { 97#ifdef USE_BSM_AUDIT 98 case 'A': 99 Aflag = 1; 100 break; 101#endif 102 case 'G': 103 Gflag = 1; 104 break; 105 case 'M': 106 Mflag = 1; 107 break; 108 case 'P': 109 Pflag = 1; 110 break; 111 case 'a': 112 break; | 98 switch(ch) { 99#ifdef USE_BSM_AUDIT 100 case 'A': 101 Aflag = 1; 102 break; 103#endif 104 case 'G': 105 Gflag = 1; 106 break; 107 case 'M': 108 Mflag = 1; 109 break; 110 case 'P': 111 Pflag = 1; 112 break; 113 case 'a': 114 break; |
115 case 'c': 116 cflag = 1; 117 break; |
|
113 case 'g': 114 gflag = 1; 115 break; 116 case 'n': 117 nflag = 1; 118 break; 119 case 'p': 120 pflag = 1; --- 32 unchanged lines hidden (view full) --- 153 154#ifdef USE_BSM_AUDIT 155 if (Aflag) { 156 auditid(); 157 exit(0); 158 } 159#endif 160 | 118 case 'g': 119 gflag = 1; 120 break; 121 case 'n': 122 nflag = 1; 123 break; 124 case 'p': 125 pflag = 1; --- 32 unchanged lines hidden (view full) --- 158 159#ifdef USE_BSM_AUDIT 160 if (Aflag) { 161 auditid(); 162 exit(0); 163 } 164#endif 165 |
166 if (cflag) { 167 error = getloginclass(loginclass, sizeof(loginclass)); 168 if (error != 0) 169 err(1, "loginclass"); 170 (void)printf("%s\n", loginclass); 171 exit(0); 172 } 173 |
|
161 if (gflag) { 162 id = pw ? pw->pw_gid : rflag ? getgid() : getegid(); 163 if (nflag && (gr = getgrgid(id))) 164 (void)printf("%s\n", gr->gr_name); 165 else 166 (void)printf("%u\n", id); 167 exit(0); 168 } --- 293 unchanged lines hidden (view full) --- 462usage(void) 463{ 464 465 if (isgroups) 466 (void)fprintf(stderr, "usage: groups [user]\n"); 467 else if (iswhoami) 468 (void)fprintf(stderr, "usage: whoami\n"); 469 else | 174 if (gflag) { 175 id = pw ? pw->pw_gid : rflag ? getgid() : getegid(); 176 if (nflag && (gr = getgrgid(id))) 177 (void)printf("%s\n", gr->gr_name); 178 else 179 (void)printf("%u\n", id); 180 exit(0); 181 } --- 293 unchanged lines hidden (view full) --- 475usage(void) 476{ 477 478 if (isgroups) 479 (void)fprintf(stderr, "usage: groups [user]\n"); 480 else if (iswhoami) 481 (void)fprintf(stderr, "usage: whoami\n"); 482 else |
470 (void)fprintf(stderr, "%s\n%s%s\n%s\n%s\n%s\n%s\n%s\n", | 483 (void)fprintf(stderr, "%s\n%s%s\n%s\n%s\n%s\n%s\n%s\n%s\n", |
471 "usage: id [user]", 472#ifdef USE_BSM_AUDIT 473 " id -A\n", 474#else 475 "", 476#endif 477 " id -G [-n] [user]", 478 " id -M", 479 " id -P [user]", | 484 "usage: id [user]", 485#ifdef USE_BSM_AUDIT 486 " id -A\n", 487#else 488 "", 489#endif 490 " id -G [-n] [user]", 491 " id -M", 492 " id -P [user]", |
493 " id -c", |
|
480 " id -g [-nr] [user]", 481 " id -p [user]", 482 " id -u [-nr] [user]"); 483 exit(1); 484} | 494 " id -g [-nr] [user]", 495 " id -p [user]", 496 " id -u [-nr] [user]"); 497 exit(1); 498} |