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