--- /dev/null
+#!/bin/sh
+
+# Ce script faire partie du système auf-mkhomedir. Il s'agit de la partie
+# serveur du système, le script qui sera lancé à chaque connexion d'un
+# utilisateur et qui créera le $HOME si besoin.
+#
+# Rappel du principe :
+# Lorsqu'un utilisateur se connecte sur une machine client, le système
+# d'authentification "pam" lance un script qui va, si besoin, demander au
+# serveur la création du répertoire. Nous sommes ici dans la partie serveur,
+# dans le script qui va reçoit une commande au format "mkdir <login>" et doit
+# créer le répertoire de l'utilisateur "<login>".
+#
+# Configuration dans /etc/inetd.conf :
+# 10 stream tcp nowait root /usr/sbin/tcpd /usr/local/bin/inetd_auf-mkhomedir
+
+# Script de Jérome Santini <jerome@madagascar> écrit en 1664 (ou en 51, choisissez)
+# Relu et un peu revu par Thomas Noël et Ndimby Andriantsoavina en mai 2009
+# NON TESTE EN VRAI !
+# <!> Il faudra sans doute l'adapter à votre cas spécifique...
+
+while read COMMAND LOGIN_EXT RESTE
+do
+ # la seule commande acceptée : mkdir
+ if [ ${COMMAND} != "mkdir" ]
+ then
+ echo "commande inconnue : $COMMAND"
+ exit 1
+ fi
+
+ # nettoyage du login (on retire les caractères interdits)
+ LOGIN=`echo $LOGIN_EXT | tr -dc A-Za-z0-9_.@-`
+
+ # est-ce un login existant ?
+ if ! id "${LOGIN}" > /dev/null
+ then
+ echo "$0 erreur : login $LOGIN introuvable" >&2
+ exit 1
+ fi
+
+ # recherche du homedir
+ HD=`getent passwd ${LOGIN}|cut -d: -f 6`
+ GROUPE=`getent passwd ${LOGIN}|cut -d: -f 4`
+
+ # si le homedir n'existe pas, on le créé
+ if [ ! -e ${HD} ]
+ then
+ # création du répertoire
+ mkdir -pv ${HD} >> /var/log/mkdir.log 2>&1
+ cd ${HD}
+ # on place les droits correctement
+ chown -R $LOGIN:$GROUPE ${HD}
+ chmod 700 ${HD}
+ # activation d'un quota de 750Mo
+ if [ -x /usr/sbin/quotatool ]
+ then
+ # recherche de la partition dans laquelle est le répertoire
+ HD=`readlink -f ${HD}`
+ PART=`df -Pl ${HD} | tail -1 | cut -d' ' -f1`
+ /usr/sbin/quotatool -u $LOGIN -b -l 750000 -q 750000 ${PART}
+ fi
+ echo $(date) mkdir $HD >>/var/log/mkdir.log
+ exit 0
+ else
+ echo "$HD existe déjà"
+ exit 1
+ fi
+done