newusers: Add missing error handling
Some errors were being reported in stderr, but then they weren't really being treated as errors. If mkdir(2) for EEXIST, it's possible that the sysadmin pre-created the user dir; don't fail. However, let's keep a log line, for having some notice that it happened. Also, run chmod(2) if mkdir(2) failed for EEXIST (so transform the 'else if' into an 'if'). Cc: Serge Hallyn <serge@hallyn.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
This commit is contained in:
parent
6491fef1e0
commit
1957c8c881
@ -1252,13 +1252,20 @@ int main (int argc, char **argv)
|
|||||||
_("%s: line %d: mkdir %s failed: %s\n"),
|
_("%s: line %d: mkdir %s failed: %s\n"),
|
||||||
Prog, line, newpw.pw_dir,
|
Prog, line, newpw.pw_dir,
|
||||||
strerror (errno));
|
strerror (errno));
|
||||||
} else if (chown (newpw.pw_dir,
|
if (errno != EEXIST) {
|
||||||
|
errors++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (chown (newpw.pw_dir,
|
||||||
newpw.pw_uid,
|
newpw.pw_uid,
|
||||||
newpw.pw_gid) != 0) {
|
newpw.pw_gid) != 0) {
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
_("%s: line %d: chown %s failed: %s\n"),
|
_("%s: line %d: chown %s failed: %s\n"),
|
||||||
Prog, line, newpw.pw_dir,
|
Prog, line, newpw.pw_dir,
|
||||||
strerror (errno));
|
strerror (errno));
|
||||||
|
errors++;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1285,12 +1292,15 @@ int main (int argc, char **argv)
|
|||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
_("%s: failed to prepare new %s entry\n"),
|
_("%s: failed to prepare new %s entry\n"),
|
||||||
Prog, sub_uid_dbname ());
|
Prog, sub_uid_dbname ());
|
||||||
|
errors++;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
_("%s: can't find subordinate user range\n"),
|
_("%s: can't find subordinate user range\n"),
|
||||||
Prog);
|
Prog);
|
||||||
errors++;
|
errors++;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1305,12 +1315,15 @@ int main (int argc, char **argv)
|
|||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
_("%s: failed to prepare new %s entry\n"),
|
_("%s: failed to prepare new %s entry\n"),
|
||||||
Prog, sub_uid_dbname ());
|
Prog, sub_uid_dbname ());
|
||||||
|
errors++;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
_("%s: can't find subordinate group range\n"),
|
_("%s: can't find subordinate group range\n"),
|
||||||
Prog);
|
Prog);
|
||||||
errors++;
|
errors++;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* ENABLE_SUBIDS */
|
#endif /* ENABLE_SUBIDS */
|
||||||
|
Loading…
Reference in New Issue
Block a user