#!/bin/bash
#Version: @(#)make_users.sh 1.2 2019-08-13 joerg.reinholz@fastix.org
#Licence: show https://code.fastix.org/lizenz.php
# Konfiguration:
source `dirname $0`/make_del_users.settings;
echo "Dies wird die Zugänge aller Seminarbenutzer, deren Prozesse, Daten, Datenbanken und Datenbankzugänge löschen.";
echo -ne "Wollen Sie das wirklich (JA/n) [n]? __ (Geben Sie 'JA' ein, wenn Sie das wollen.)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
read a;
if [ "JA" != "$a" ]; then
exit;
fi
i=1;
end=$(($users+1));
sql="SET NAMES 'utf8';";
while [ $i -lt $end ]; do
# Bauen des Benutzernamens:
if [ $i -lt 10 ]; then
username="tn0$i";
else
username="tn$i";
fi
# Sperren des Benutzers:
usermod -L "$username" 2> /dev/null;
# Beenden der Log-In-Shells und aller abhängigen Prozesse:
pids=`ps aux | grep -P "bash-|sh-|sshd: $username@pts" | grep -P "^$username" | sed -E -e 's/ +/ /g' | cut -d ' ' -f2`;
for pid in $pids; do
kill -9 $pid;
done
# Löschen der Crontabs
crontab -r -u "$username" 2> /dev/null;
# Löschen der at-/batch-jobs:
if [ -d /var/spool/cron/atjobs ]; then
find /var/spool/cron/atjobs -name "[^.]*" -type f -user $username -exec rm {} \;;
fi
# Löschen der Druckaufträge
if [ -x /usr/bin/lprm ]; then
lprm $1;
fi
# Löschen der Datenbank des Benutzers und des MySQl_Benutzers (befehle sammeln)
if [ 1 -eq $hasMySQL ]; then
s="DROP USER IF EXISTS '$username'@'%'; DROP DATABASE IF EXISTS $username;";
sql="$sql $s";
fi
# Löschen des Benutzers
if [ -d "/home/$username" ]; then
userdel -rf "$username" 2> /dev/null;
if [ 0 -eq $? ]; then
echo "$username wurde gelöscht.";
fi
fi
i=$(($i+1));
done
# Löschen der Datenbank des Benutzers und des MySQl_Benutzers (exec)
if [ "" != "$sql" ]; then
if [ "" == "$dbrootpw" ]; then
echo "$sql" | mysql -u root;
else
echo "$sql" | mysql -u root --password="$dbrootpw";
fi
fi