diff options
author | Eric Andersen <andersen@codepoet.org> | 2002-12-12 08:57:16 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2002-12-12 08:57:16 +0000 |
commit | b8dff0c2a2d2d53e6f0888568305dc17e990cddc (patch) | |
tree | 51300f163856b0aa8e1e5538d058faec603ae261 /loginutils/addgroup.c | |
parent | b2bfd34a7bd6ce1bd85da225a30d087586680622 (diff) | |
download | busybox-w32-b8dff0c2a2d2d53e6f0888568305dc17e990cddc.tar.gz busybox-w32-b8dff0c2a2d2d53e6f0888568305dc17e990cddc.tar.bz2 busybox-w32-b8dff0c2a2d2d53e6f0888568305dc17e990cddc.zip |
Teach addgroup to add user names to groups
Diffstat (limited to 'loginutils/addgroup.c')
-rw-r--r-- | loginutils/addgroup.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/loginutils/addgroup.c b/loginutils/addgroup.c index f4c024516..36536bf50 100644 --- a/loginutils/addgroup.c +++ b/loginutils/addgroup.c | |||
@@ -83,7 +83,7 @@ static int group_study(const char *filename, struct group *g) | |||
83 | } | 83 | } |
84 | 84 | ||
85 | /* append a new user to the passwd file */ | 85 | /* append a new user to the passwd file */ |
86 | static int addgroup(const char *filename, char *group, gid_t gid) | 86 | static int addgroup(const char *filename, char *group, gid_t gid, const char *user) |
87 | { | 87 | { |
88 | FILE *etc_group; | 88 | FILE *etc_group; |
89 | 89 | ||
@@ -106,7 +106,7 @@ static int addgroup(const char *filename, char *group, gid_t gid) | |||
106 | /* add entry to group */ | 106 | /* add entry to group */ |
107 | etc_group = xfopen(filename, "a"); | 107 | etc_group = xfopen(filename, "a"); |
108 | 108 | ||
109 | fprintf(etc_group, entryfmt, group, default_passwd, gr.gr_gid, ""); | 109 | fprintf(etc_group, entryfmt, group, default_passwd, gr.gr_gid, user); |
110 | fclose(etc_group); | 110 | fclose(etc_group); |
111 | 111 | ||
112 | 112 | ||
@@ -133,6 +133,7 @@ static int addgroup(const char *filename, char *group, gid_t gid) | |||
133 | int addgroup_main(int argc, char **argv) | 133 | int addgroup_main(int argc, char **argv) |
134 | { | 134 | { |
135 | char *group; | 135 | char *group; |
136 | char *user; | ||
136 | gid_t gid = 0; | 137 | gid_t gid = 0; |
137 | 138 | ||
138 | if (argc < 2) { | 139 | if (argc < 2) { |
@@ -145,6 +146,12 @@ int addgroup_main(int argc, char **argv) | |||
145 | } else { | 146 | } else { |
146 | show_usage(); | 147 | show_usage(); |
147 | } | 148 | } |
149 | |||
150 | if (argc == 4) { | ||
151 | user = argv[3]; | ||
152 | } else { | ||
153 | user = ""; | ||
154 | } | ||
148 | 155 | ||
149 | if (geteuid() != 0) { | 156 | if (geteuid() != 0) { |
150 | error_msg_and_die | 157 | error_msg_and_die |
@@ -152,7 +159,7 @@ int addgroup_main(int argc, char **argv) | |||
152 | } | 159 | } |
153 | 160 | ||
154 | /* werk */ | 161 | /* werk */ |
155 | return addgroup(group_file, group, gid); | 162 | return addgroup(GROUP_FILE, group, gid, user); |
156 | } | 163 | } |
157 | 164 | ||
158 | /* $Id: addgroup.c,v 1.6 2002/11/14 11:10:14 andersen Exp $ */ | 165 | /* $Id: addgroup.c,v 1.7 2002/12/12 08:57:16 andersen Exp $ */ |