next up previous contents index
suivant: Programmes obtenus monter: Développement précédent: Création des nouvelles entrées   Table des matières   Index


Création des répertoires utilisateurs et "projet"

Que ce soit pour les répertoires utilisateurs ou "projet", la méthode reste la même. Nous partons du fichier contenant les descriptions des répertoires sur le serveur (fichiers "AUTO_USERS" et "AUTO_PROJECTS"), nous en extrayons les informations, c'est-à-dire le répertoire à créer éventuellement, et nous y appliquons les opérations suivantes :

Par convention, le nom d'un répertoire utilisateur ou "projet" est justement celui affecté à cet utilisateur ou ce projet. Par conséquent, il suffit d'utiliser la commande "basename16.4" avec comme argument, le nom du répertoire. L'"UID" correspond au troisième champ du fichier "PASSWD_REF", sachant que le premier champ doit ête identique à l'utilisateur traité (le nom est connu grâce à la commande "basename". Cette opération est donc effectuée de la façon suivante :

owner=`basename $directory`
uid=`awk -F: -v owner=$owner '
    $1 == owner { print $3 }
    ' $PASSWD_NEW`
où "directory" correspond au répertoire en cours de traitement. Il ne restera plus qu'à copier les fichiers de profil nécessaires et mettre à jour les droits d'accès.

La technique est rigoureusement identique pour les répertoires associés aux projets. Le fichier permettant de connaître les "GIDs" est "GROUP_REF".

Nous obtenons donc, pour cette partie, les instructions suivantes :

cat $AUTO_USERS | cut -d: -f2 |\
while
    read directory
do
    owner=`basename $directory`
    uid=`awk -F: -v owner=$owner '
        $1 == owner { print $3 }
        ' $PASSWD_NEW`
    if [ ! -d $directory ]; then
        mkdir -p $directory
        cp $HOME_PROTOTYPE/.[a-z]* $HOME_PROTOTYPE/.[A-Z]*      \
            $HOME_PROTOTYPE/* $FS_STUDENTS/$newname 2>/dev/null
        chown -R ${uid}.${STUDENT_GID} $directory
    fi
done

cat $AUTO_PROJECTS | cut -d: -f2 |\
while
    read directory
do
    group=`basename $directory`
    gid=`awk -F: -v group=$group '
        $1 == group { print $3 }
        ' $GROUP_NEW`
    if [ ! -d $directory ]; then
        mkdir -p $directory
        chown -R root.${gid} $directory
    fi
done


next up previous contents index
suivant: Programmes obtenus monter: Développement précédent: Création des nouvelles entrées   Table des matières   Index
baudry@esme.fr