#! /bin/sh
# adduser - Ajoute un nouvel utilisateur au systme, en pensant 
#   construire son rpertoire personnel,  y copier les donnes de
#   configuration par dfaut, etc.

# Script valable pour un systme Unix/Linux standard, pas pour Mac OS X.

pwfile="/etc/passwd"   shadowfile="/etc/shadow"
gfile="/etc/group"
hdir="/home"

if [ "$(whoami)" != "root" ] ; then 
  echo "Erreur: il faut tre root pour excuter cette commande." >&2 
  exit 1
fi

echo "Ajout d'un compte utilisateur sur $(hostname)"
echo -n "login: "  ; read login

# Remplacez 5000 par la valeur maximale des identifiants
# utilisateur sur votre systme. Certains comptes systme occupent en
# effet les uid 65535 etc.

uid="$(awk -F: '{ if (big < $3 && $3 < 5000) big=$3 } END { print big + 1 }'
$pwfile)"
homedir=$hdir/$login

# On attribue  chaque utilisateur son propre groupe, donc gid=uid
gid=$uid

echo -n "nom complet: " ; read fullname
echo -n "shell: "       ; read shell

echo "Mise en place du compte $login pour $fullname..."

echo ${login}:x:${uid}:${gid}:${fullname}:${homedir}:$shell >> $pwfile
echo ${login}:*:11647:0:99999:7::: >> $shadowfile

echo "${login}:x:${gid}:$login" >> $gfile

mkdir $homedir
cp -R /etc/skel/.[a-zA-Z]* $homedir
chmod 755 $homedir
find $homedir -print | xargs chown ${login}:${login}

# Mise en place d'un mot de passe initial
passwd $login

exit 0
