aboutsummaryrefslogtreecommitdiff
path: root/coreutils/id.c
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2003-07-03 10:07:04 +0000
committerEric Andersen <andersen@codepoet.org>2003-07-03 10:07:04 +0000
commit9e48045e45df7e3e205575a4eb3dc39d634b05aa (patch)
treee8f993dffc34380fbcc54cc858c81da594bdb95b /coreutils/id.c
parentc48d49ad988a4163cff7f38ee4bd1f9886d0ed11 (diff)
downloadbusybox-w32-9e48045e45df7e3e205575a4eb3dc39d634b05aa.tar.gz
busybox-w32-9e48045e45df7e3e205575a4eb3dc39d634b05aa.tar.bz2
busybox-w32-9e48045e45df7e3e205575a4eb3dc39d634b05aa.zip
Patch from Russell Coker:
I've attached my latest SE Linux patch for busybox against the latest CVS version of busybox.
Diffstat (limited to 'coreutils/id.c')
-rw-r--r--coreutils/id.c34
1 files changed, 29 insertions, 5 deletions
diff --git a/coreutils/id.c b/coreutils/id.c
index 9b2d60dc7..971e7cdad 100644
--- a/coreutils/id.c
+++ b/coreutils/id.c
@@ -28,9 +28,13 @@
28#include <getopt.h> 28#include <getopt.h>
29#include <string.h> 29#include <string.h>
30#include <sys/types.h> 30#include <sys/types.h>
31#ifdef CONFIG_SELINUX
32#include <proc_secure.h>
33#include <flask_util.h>
34#endif
31 35
32#define NO_GROUP 1 36#define JUST_USER 1
33#define NO_USER 2 37#define JUST_GROUP 2
34#define PRINT_REAL 4 38#define PRINT_REAL 4
35#define NAME_NOT_NUMBER 8 39#define NAME_NOT_NUMBER 8
36 40
@@ -40,10 +44,13 @@ extern int id_main(int argc, char **argv)
40 long pwnam, grnam; 44 long pwnam, grnam;
41 int uid, gid; 45 int uid, gid;
42 int flags; 46 int flags;
47#ifdef CONFIG_SELINUX
48 int is_flask_enabled_flag = is_flask_enabled();
49#endif
43 50
44 flags = bb_getopt_ulflags(argc, argv, "ugrn"); 51 flags = bb_getopt_ulflags(argc, argv, "ugrn");
45 52
46 if (((flags & (NO_USER | NO_GROUP)) == (NO_USER | NO_GROUP)) 53 if (((flags & (JUST_USER | JUST_GROUP)) == (JUST_USER | JUST_GROUP))
47 || (argc > optind + 1) 54 || (argc > optind + 1)
48 ) { 55 ) {
49 bb_show_usage(); 56 bb_show_usage();
@@ -67,9 +74,9 @@ extern int id_main(int argc, char **argv)
67 pwnam=my_getpwnam(user); 74 pwnam=my_getpwnam(user);
68 grnam=my_getgrnam(group); 75 grnam=my_getgrnam(group);
69 76
70 if (flags & (NO_GROUP | NO_USER)) { 77 if (flags & (JUST_GROUP | JUST_USER)) {
71 char *s = group; 78 char *s = group;
72 if (flags & NO_GROUP) { 79 if (flags & JUST_USER) {
73 s = user; 80 s = user;
74 grnam = pwnam; 81 grnam = pwnam;
75 } 82 }
@@ -79,7 +86,24 @@ extern int id_main(int argc, char **argv)
79 printf("%ld\n", grnam); 86 printf("%ld\n", grnam);
80 } 87 }
81 } else { 88 } else {
89#ifdef CONFIG_SELINUX
90 printf("uid=%ld(%s) gid=%ld(%s)", pwnam, user, grnam, group);
91 if(is_flask_enabled_flag)
92 {
93 security_id_t mysid = getsecsid();
94 char context[80];
95 int len = sizeof(context);
96 context[0] = '\0';
97 if(security_sid_to_context(mysid, context, &len))
98 strcpy(context, "unknown");
99 printf(" context=%s\n", context);
100 }
101 else
102 printf("\n");
103#else
82 printf("uid=%ld(%s) gid=%ld(%s)\n", pwnam, user, grnam, group); 104 printf("uid=%ld(%s) gid=%ld(%s)\n", pwnam, user, grnam, group);
105#endif
106
83 } 107 }
84 108
85 bb_fflush_stdout_and_exit(0); 109 bb_fflush_stdout_and_exit(0);