#!/bin/sh
#
# Created 27 June 2003 
#
# nologin will:
# - offer to set /etc/nologin
# - offer to evict user groups from system
# - offer to shutdown apache
#
NOLOGIN=0
APACHE=0
echo
echo -n "Set /etc/nologin [y/N]: "
read ANSWER
if [ "$ANSWER" = "Y" -o "$ANSWER" = "y" ]
then
	echo -n "Login disabled message? : "
	read ANSWER
        echo $ANSWER > /etc/nologin
	NOLOGIN=1
fi
echo -n "Evict a user group? [gid]: "
read GROUP
while [ "$GROUP" != "" ]
do
   # create user list
   w -h | awk '{print $1}' | sort | uniq >ldlist
   while read NAME
   do
	GID=`grep ^$NAME: /etc/passwd | cut -f4 -d:`
	if [ "$GID" = "$GROUP" -a $GROUP -gt 99 ]
        then
		echo " Evicting -> $NAME"
		ps -A -o user -o pid | grep $NAME | \
		    awk '{print $2}' | xargs kill -15
        fi
	[ $GROUP -lt 100 ] && echo " GID must be > 99 " 
   done  <ldlist
   echo -n "Evict a user group? [gid]: "
   read GROUP
done
echo -n "Stop apache/httpd? [y/N]: "
read ANSWER
if [ "$ANSWER" = "Y" -o "$ANSWER" = "y" ]
then
	APACHE=1
	# stop apache in its multitude of ways
	{
	   /usr/local/apache/bin/apachectl stop
	   /etc/init.d/apache stop
	   /etc/init.d/httpd stop
	} >/dev/null 2>&1
fi
echo
echo "When ready to let users back on, remember to:"
[ "$NOLOGIN" = "1" ] && echo "- Remove /etc/nologin"
[ "$NOLOGIN" = "1" ] && echo "- Run faillog -ra to reset any locked accounts"
[ "$APACHE" = "1" ] && echo "- Restart apache"
[ "$APACHE" = "0" -a "$NOLOGIN" = "0" ] && echo "- Seems Nothing Needs to Done"
rm -f ldlist >/dev/null 2>&1
echo