#!/bin/sh

# deleteuser - Dtruit totalement un compte utilisateur.
#   Ne pas utiliser avec Mac OS X

homedir="/home" 
pwfile="/etc/passwd"         shadow="/etc/shadow" 
newpwfile="/etc/passwd.new"  newshadow="/etc/shadow.new" 
suspend="/usr/local/bin/suspenduser" 
locker="/etc/passwd.lock"

if [ -z $1 ] ; then
  echo "Syntaxe: $0 compte" >&2; exit 1 
elif [ "$(whoami)" != "root" ] ; then
  echo "Erreur. Il faut tre root pour excuter cette commande." >&2; exit 1  
fi

$suspend $1   # on suspend le compte avant d'attaquer le sale boulot 

uid="$(grep -E "^${1}:" $pwfile | cut -d: -f3)"

if [ -z $uid ] ; then
  echo "Erreur: aucun compte $1 trouv dans $pwfile" >&2; exit 1 
fi

# On dtruit ce compte des fichiers password et shadow
grep -vE "^${1}:" $pwfile > $newpwfile 
grep -vE "^${1}:" $shadow > $newshadow

lockcmd="$(which lockfile)"    # cherche l'application lockfile dans le PATH
if [ ! -z $lockcmd ]; then     # utilisons le lockfile du systme
  eval $lockcmd -r 15 $locker
else                           # il faut tout faire soi-mme!
  while [ -e $locker ]; do
    echo "j'attends le fichier de mots de passe"; sleep 1
  done
  touch $locker                # mise en place d'un verrou par fichier
fi

mv $newpwfile $pwfile
mv $newshadow $shadow
rm -f $locker                  # clac! le verrou est lev

chmod 644 $pwfile
chmod 400 $shadow

# Il s'agit maintenant de dtruire le rpertoire personnel et de trouver
#   tout ce qui trane... 
rm -rf $homedir/$1

echo "Fichiers restant  dtruire (le cas chant):"
find / -uid $uid -print 2>/dev/null | sed 's/^/  /'

echo ""
echo "Le compte $1 (uid $uid) a t dtruit, ainsi que son"
echo "rpertoire personnel ($homedir/$1)."

exit 0
