From 64442c841c9c603f4fb09552a5ff28f9d5d319d3 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Sat, 8 Feb 2003 08:04:53 +0000 Subject: 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 --- adduser/adduser.sh | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'adduser/adduser.sh') diff --git a/adduser/adduser.sh b/adduser/adduser.sh index 96049bd..ee47bdd 100644 --- a/adduser/adduser.sh +++ b/adduser/adduser.sh @@ -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 -- cgit v1.2.3-56-ge451