Ben c'est réalisable, après le mot de passe = année de naissance, c'est une grosse faille je trouve, mais bon ^^.
Il y a cependant plusieurs choses à prendre en compte, et la première c'est les noms composée. Voici un exemple de fichier csv que j'ai créé en respectant ce que tu veux:
"dupont","alfred",18051965,"Manchot"
"dupond","jean-pierre",26121971,"Manchot"
Il est assez facile d'extrait chacun de ces paramètres.
Pour le nom, ca nous donne:
cat test.csv | cut -d "," -f1 | sed -s 's/"//g'
En gros, on affiche les lignes du fichier en prenant la première colonne en amont du délimiteur "," grace à la commande cut puis un enlève les "" avec la commande sed.
Le prénom:
cat test.csv | cut -d "," -f2 | sed -s 's/"//g'
la date de naissance:
cat test.csv | cut -d "," -f3 | sed -s 's/"//g'
Et le type de poste:
cat test.csv | cut -d "," -f4 | sed -s 's/"//g'
(PS: Je ne script que très rarement, donc dans le sed, y a peut-être mieux ^^).
Pour faire un script qui match toutes les lignes, on pourra utiliser quelque chose dans ce style:
while read line; do echo Nom du User: $line | cut -d "," -f1 | sed -s 's/"//g'; done < test.csv
Qui donne:
Nom du User: dupont
Nom du User: dupond
Donc en gros, extraire les infos et les passer en paramètre de la commande adduser, c'est pas le problème.
Maintenant, il faut développer une fonction qui détecte un prénom composé et qui prend au mieux les 2 premières lettres de chaque partie (ici ca donnerai jpdupond).
Une fois que ce sera fait, ne devrait tu pas limiter le nombre de caractère pour le login?
Il y a des gens avec des Nom à rallonge, c'est peut-être pas super cool (Sous Linux je ne connais pas la limitation, mais sous HP-UX, j'ai cru entendre une fois que la limite était de 8 caractère, bon OK t'est pas sous HP-UX, mais quand même 😛).
Pour finir, une fois que tout ça est dans la boite, qu'est ce que tu en fait de ces comptes ?
Des accès FTP, ssh, etc ...?
En espérant t'avoir aidé un peu ^^
Good Luck.