#! /bin/sh #---------------------------------------------------------------------------- # remove-group - remove a group # # Copyright (c) 2001-2003 Frank Meyer # # usage: remove-group [group] # # Creation: 04.11.2001 fm # Last Update: 14.09.2003 fm # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. #---------------------------------------------------------------------------- case $# in 0) interactive='true' group="" ;; 1) interactive='false' group="$1" ;; *) echo "usage: $0 [group]" >&2 exit 1 ;; esac if [ "$interactive" = "true" ] then clrhome colecho "Remove group" gn echo tty=`tty` echo -e "Group to remove (e.g. 'www'): \c" read group if [ "$group" = "" ] then echo /var/install/bin/anykey exit 0 fi fi line=`grep "^$group:" /etc/group` if [ "$line" = "" ] then if [ "$interactive" = "true" ] then echo colecho "Group $group does not exist" br x br echo /var/install/bin/anykey else echo "Group $group does not exist" >&2 fi exit 1 fi IFS=':' set -- $line gid=$3 if [ $gid -lt 200 -o $gid -ge 65534 ] then if [ "$interactive" = "true" ] then echo colecho "It is not allowed to remove group $group, sorry" br x br echo /var/install/bin/anykey else echo "It is not allowed to remove group $group, sorry" >&2 fi exit 1 fi while read line do set -- $line g="$4" if [ $g = $gid ] then if [ "$interactive" = "true" ] then echo colecho "Cannot remove group $group, user $1 is member of $group" br x br echo /var/install/bin/anykey <$tty else echo "Cannot remove group $group, user $1 is member of $group" >&2 fi exit 0 fi done /tmp/group-$$ cp /tmp/group-$$ /etc/group # cp: keep inode & permissions rm -f /tmp/group-$$ if [ "$interactive" = "true" ] then echo /var/install/bin/anykey fi exit 0