summaryrefslogtreecommitdiff
path: root/loginutils
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2002-12-12 08:57:16 +0000
committerEric Andersen <andersen@codepoet.org>2002-12-12 08:57:16 +0000
commitb8dff0c2a2d2d53e6f0888568305dc17e990cddc (patch)
tree51300f163856b0aa8e1e5538d058faec603ae261 /loginutils
parentb2bfd34a7bd6ce1bd85da225a30d087586680622 (diff)
downloadbusybox-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')
-rw-r--r--loginutils/addgroup.c15
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 */
86static int addgroup(const char *filename, char *group, gid_t gid) 86static 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)
133int addgroup_main(int argc, char **argv) 133int 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 $ */