code.fastix.org

Dateiansicht:

Datei:Projekte -> Linux:Benutzernamen, Passwörter und Homes für Kursteilnehmer -> del_users.sh
md5:6d22551fd13f45d1c713ea719c3524d3
sha1:43ac765bceae0c65734b02962397957428935298
Download-Link:Download
  1. #!/bin/bash
  2.  
  3. #Version:      @(#)make_users.sh  1.2  2019-08-13  joerg.reinholz@fastix.org
  4. #Licence:      show https://code.fastix.org/lizenz.php
  5.  
  6. # Konfiguration:
  7. source `dirname $0`/make_del_users.settings;
  8.  
  9. echo "Dies wird die Zugänge aller Seminarbenutzer, deren Prozesse, Daten, Datenbanken und Datenbankzugänge löschen.";
  10. 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";
  11. read a;
  12. if [ "JA" != "$a" ]; then
  13.         exit;
  14. fi
  15.  
  16. i=1;
  17. end=$(($users+1));
  18. sql="SET NAMES 'utf8';";
  19.  
  20. while [ $i -lt $end ]; do
  21.  
  22.         # Bauen des Benutzernamens:
  23.         if [ $i -lt 10 ]; then
  24.                 username="tn0$i";
  25.         else
  26.                 username="tn$i";
  27.         fi
  28.        
  29.         # Sperren des Benutzers:
  30.         usermod -L "$username" 2> /dev/null;
  31.    
  32.         # Beenden der Log-In-Shells und aller abhängigen Prozesse:
  33.         pids=`ps aux | grep -P "bash-|sh-|sshd: $username@pts" | grep -P "^$username" | sed -E -e 's/ +/ /g' | cut -d ' ' -f2`;
  34.         for pid in $pids; do
  35.                 kill -9 $pid;
  36.         done
  37.    
  38.         # Löschen der Crontabs
  39.         crontab -r -u "$username" 2> /dev/null;
  40.    
  41.         # Löschen der at-/batch-jobs:
  42.         if [ -d /var/spool/cron/atjobs ]; then
  43.                 find /var/spool/cron/atjobs -name "[^.]*" -type f -user $username -exec rm {} \;;
  44.         fi
  45.        
  46.         # Löschen der Druckaufträge
  47.         if [ -x /usr/bin/lprm ]; then
  48.                 lprm $1;
  49.         fi
  50.         # Löschen der Datenbank des Benutzers und des MySQl_Benutzers (befehle sammeln)
  51.         if [ 1 -eq $hasMySQL ]; then
  52.                 s="DROP USER IF EXISTS '$username'@'%'; DROP DATABASE IF EXISTS $username;";
  53.                 sql="$sql $s";
  54.         fi
  55.        
  56.         # Löschen des Benutzers
  57.         if [ -d "/home/$username" ]; then
  58.                 userdel -rf "$username" 2> /dev/null;
  59.                 if [ 0 -eq $? ]; then
  60.                         echo "$username wurde gelöscht.";
  61.                 fi
  62.         fi
  63.         i=$(($i+1));
  64. done
  65. # Löschen der Datenbank des Benutzers und des MySQl_Benutzers (exec)
  66. if [ "" != "$sql" ]; then
  67.         if [ "" == "$dbrootpw" ]; then
  68.                 echo "$sql" | mysql -u root;
  69.         else
  70.                 echo "$sql" | mysql -u root --password="$dbrootpw";
  71.         fi
  72. fi