adduser: prefer to call addgroup --gid, not non-std addgroup -g
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
b808614785
commit
569e930768
@ -67,6 +67,7 @@ static void passwd_study(struct passwd *p)
|
||||
}
|
||||
if (p->pw_uid == max) {
|
||||
bb_error_msg_and_die("no %cids left", 'u');
|
||||
/* this format string is reused in adduser and addgroup */
|
||||
}
|
||||
p->pw_uid++;
|
||||
}
|
||||
@ -92,9 +93,16 @@ static void addgroup_wrapper(struct passwd *p, const char *group_name)
|
||||
argv[3] = (char*)group_name;
|
||||
argv[4] = NULL;
|
||||
} 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...
|
||||
/* Add user to his own group with the first free gid
|
||||
* found in passwd_study.
|
||||
* We try to use --gid, not -g, because "standard" addgroup
|
||||
* has no such short option, it has only long --gid.
|
||||
*/
|
||||
#if ENABLE_FEATURE_ADDGROUP_LONG_OPTIONS
|
||||
argv[1] = (char*)"--gid";
|
||||
#else
|
||||
argv[1] = (char*)"-g";
|
||||
#endif
|
||||
argv[2] = utoa(p->pw_gid);
|
||||
argv[3] = (char*)"--";
|
||||
argv[4] = p->pw_name;
|
||||
@ -230,9 +238,11 @@ int adduser_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (mkdir_err == 0) {
|
||||
/* New home. Copy /etc/skel to it */
|
||||
const char *args[] = {
|
||||
"chown", "-R",
|
||||
"chown",
|
||||
"-R",
|
||||
xasprintf("%u:%u", (int)pw.pw_uid, (int)pw.pw_gid),
|
||||
pw.pw_dir, NULL
|
||||
pw.pw_dir,
|
||||
NULL
|
||||
};
|
||||
/* Be silent on any errors (like: no /etc/skel) */
|
||||
logmode = LOGMODE_NONE;
|
||||
|
Loading…
Reference in New Issue
Block a user