Change the behaviour of adduser to match the previous incarnation a little more.

If any of the given groups do not exist complain and let the user try again.
This saves the user from discovering at the end of the process that they've
forgotten to add a group or they've typoed.

Thanks to cmc/dougb for pointing out how bad my sh fu actually is.

Original code by: me
Scary sh rewrite by: dougb

Reviewed by:	dougb
This commit is contained in:
Adrian Chadd 2003-02-08 08:04:53 +00:00
parent ac7b094dca
commit 3386ded6a9

View File

@ -570,8 +570,32 @@ input_interactive() {
get_user
get_gecos
get_uid
get_logingroup
get_groups
# The case where group = user is handled elsewhere, so
# validate any other groups the user is invited to.
until [ "$_logingroup_ok" = yes ]; do
get_logingroup
_logingroup_ok=yes
if [ -n "$ulogingroup" -a "$username" != "$ulogingroup" ]; then
if ! ${PWCMD} show group $ulogingroup > /dev/null 2>&1; then
echo "Group $ulogingroup does not exist!"
_logingroup_ok=no
fi
fi
done
until [ "$_groups_ok" = yes ]; do
get_groups
_groups_ok=yes
for i in $ugroups; do
if [ "$username" != "$i" ]; then
if ! ${PWCMD} show group $i > /dev/null 2>&1; then
echo "Group $i does not exist!"
_groups_ok=no
fi
fi
done
done
get_class
get_shell
get_homedir