adduser: use better argv passing to addgroup
function old new delta adduser_main 855 882 +27 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
e3b1a1fd28
commit
143c5baf6c
@ -67,15 +67,24 @@ static void passwd_study(struct passwd *p)
|
|||||||
|
|
||||||
static void addgroup_wrapper(struct passwd *p, const char *group_name)
|
static void addgroup_wrapper(struct passwd *p, const char *group_name)
|
||||||
{
|
{
|
||||||
char *cmd;
|
char *argv[5];
|
||||||
|
|
||||||
if (group_name) /* Add user to existing group */
|
argv[0] = (char*)"addgroup";
|
||||||
cmd = xasprintf("addgroup '%s' '%s'", p->pw_name, group_name);
|
if (group_name) {
|
||||||
else /* Add user to his own group with the first free gid found in passwd_study */
|
/* Add user to existing group */
|
||||||
cmd = xasprintf("addgroup -g %u '%s'", (unsigned)p->pw_gid, p->pw_name);
|
argv[1] = p->pw_name;
|
||||||
/* Warning: to be compatible with external addgroup programs we should use --gid instead */
|
argv[2] = (char*)group_name;
|
||||||
system(cmd);
|
argv[3] = NULL;
|
||||||
free(cmd);
|
} else {
|
||||||
|
/* Add user to his own group with the first free gid found in passwd_study */
|
||||||
|
//TODO: to be compatible with external addgroup programs we should use --gid instead...
|
||||||
|
argv[1] = (char*)"-g";
|
||||||
|
argv[2] = utoa(p->pw_gid);
|
||||||
|
argv[3] = p->pw_name;
|
||||||
|
argv[4] = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
spawn_and_wait(argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void passwd_wrapper(const char *login_name) NORETURN;
|
static void passwd_wrapper(const char *login_name) NORETURN;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user