mars-mail/nomasteruser
2011-11-13 00:46:51 +01:00

135 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
#
# This scripts complements ohmasteruser by destroying accounts and doing
# some cleanup...
user=$1 # username passed to this script
DHOME="/hamster/home" # place for home dirs
BASE="/hamster" # place before SYS volume
SNAME="nw-admin" # supervisor name
SHOME="supervis" # Supervisor home dir
#Get user name
if [ "$user" = "" ]
then
echo -n "What user should be cast into the pit: "
read user
fi
# Check existing
if ! grep "^$user:" /etc/passwd > /dev/null
then
echo "Removing Nonexisting users lead to time paradoxes, I quit!"
exit
else
echo -n "Are you sure? (Type yes) "
read yn
if [ "$yn" != "yes" ]
then
echo "Chicken!"
exit
fi
fi
#11th commandment: thou should make backups
cp /etc/passwd /etc/passwd.notmp
cp /etc/group /etc/group.notmp
# Remove user from passwd file
echo -n "Removing user from password file..."
cat /etc/passwd | sed "/^$user:/d" > /etc/passwd.lock
mv -f /etc/passwd /etc/passwd-
mv -f /etc/passwd.lock /etc/passwd
echo "done..."
# Remove user from shadow passwd file
echo -n "Removing user from shadow password file...."
mv /etc/shadow /etc/shadow-
cat /etc/shadow- | sed "/^$user:/d" > /etc/shadow
echo "done..."
# Remove user from group file
echo -n "Removing user from group file.... "
cat /etc/group | sed "/^$user:/d" > /etc/group.lock
mv -f /etc/group /etc/group-
mv -f /etc/group.lock /etc/group
cat /etc/group | sed "s/:$user,/:/" > /etc/group.l1
cat /etc/group.l1 | sed "s/,$user,/,/" > /etc/group.l2
cat /etc/group.l2 | sed "s/,$user$//" > /etc/group.l3
mv -f /etc/group /etc/group-
mv -f /etc/group.l3 /etc/group
rm /etc/group.l1 /etc/group.l2
echo "done..."
# Remove user from expiry file
echo -n "Removing user from account expiry file... "
cp /etc/expiry /etc/expiry-
cat /etc/expiry- | sed "/^$user:/d" > /etc/expiry
echo "Done..."
# Remove user from birthdays file
echo -n "Remove user from birthdays file.... "
cp /etc/birthdays /etc/birthdays-
cat /etc/birthdays | sed "/^$user:/d" > /etc/birthdays
echo "Done...."
echo -n "Removing user from mail delivery notification file.... "
cp /etc/ohmaillist /etc/ohmaillist-
cat /etc/ohmaillist- | sed "/^$user$/d" > /etc/ohmaillist
echo "Done..."
# Remove user's mail box
echo -n "Removing user's mailbox..."
rm /var/spool/mail/$user
rm /tmp/mail/$user
echo "done..."
# Remove user's files
echo -n "Should I remove all $user's data as well? (Type yes) "
read yn
if [ "$yn" = "yes" ]
then
echo "Removing ..."
rm -r $DHOME/$user
rm -r $DHOME/httpd/html/$user
# here needs to be some code to delete the novell mailbox as well
NOVMAIL="`ls -l $BASE/SYS/mail | grep " $user " | colrm 1 55`"
if [ "$NOVMAIL" != "" ] ; then
echo -n "Removing Novell mailbox $NOVMAIL ... "
rm -r $BASE/SYS/mail/$NOVMAIL
echo "done..."
fi
fi
echo -n "Updating myusers.html... "
$DHOME/httpd/cgi-bin/nph-users > /$DHOME/httpd/html/myusers.html
chmod 755 $DHOME/httpd/html/myusers.html
echo "done..."
echo -n "Removing user from Novell binderies... "
echo -e "#DELETE $user^\r\n" >> $DHOME/$SHOME/users.usr
chown $SNAME.$SNAME $DHOME/$SHOME/users.usr
echo -n "done..."
# The following removes stuff from the dummy group and passwd file for ftp
echo -n "Updating passwd clone in ..base../home/etc... "
cat /etc/passwd | cut -f 1,3,4,5,6,7,8,9,10 -d : - | sed s/:/:*:/ > $DHOME/etc/passwd
cp /etc/group $DHOME/etc/group
echo "done..."
echo "Supervisor, please just logon to marsserver to remove this user automagically."
echo ""
echo "Password linecount: bottom number should be one less"
wc /etc/passwd.notmp
wc /etc/passwd
echo "Groupfile linecount: bottom number should be one less"
wc /etc/group.notmp
wc /etc/group
echo "All done, please inform user $user of his non-existance"
#DONE...