#!/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