aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2003-02-08 08:04:53 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2003-02-08 08:04:53 +0000
commit3386ded6a91d065ad30ba98e1476ed2ea8d4ab5b (patch)
treef45bfdab6f7f1fffebb03c439b74e4ef0560ef11 /usr.sbin
parentac7b094dcaf04d0876dc2150f394c7ccca77c31c (diff)
Notes
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/adduser/adduser.sh28
1 files changed, 26 insertions, 2 deletions
diff --git a/usr.sbin/adduser/adduser.sh b/usr.sbin/adduser/adduser.sh
index 96049bd844718..ee47bdde39eca 100644
--- a/usr.sbin/adduser/adduser.sh
+++ b/usr.sbin/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