Useradd et mot de passe via script
Bonjour,
Je suis actuellement en train d'installer un serveur destiné à accueillir les travaux de plusieurs personnes. Pour faciliter les choses - et parce que tous les futurs utilisateurs ne sont pas forcement experts es Unix -, j'aimerais créer un script permettant de créer à la fois un nouveau compte utilisateur, un virtualhost sur le serveur Apache, un utilisateur MySQL disposant d'une base personnelle et la même chose sous Postgres et LDAP - oui, c'est gros, mais c'est ca ou passer 3 heures en explication à chaque nouvel utilisateur et j'ai pas envie -.
Seulement voilà, depuis ce midi, je bloque dés la création de l'utilisateur :/
Voici le code de mon script à l'heure actuelle :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #!/bin/bash
#
# Script shell pour l'inscription d'un nouvel utilisateur serveur
# Créé le 20/11/2006 par Folken Laëneck
# Récupération des informations de l'utilisateur à créer
echo "Nom complet de l'utilisateur :"
read user_fullname
echo "Nom de login :"
read user_logname
echo "Mot de passe :"
read -s user_password
echo "Confirmer le mot de passe :"
read -s user_password_confirm
if [ $user_password != $user_password_confirm ]
then
# Erreur : mot de passe non confirmé
exit 1
fi
echo "Adresse e-mail :"
read user_email
# Création de l'utilisateur
useradd --gid "www-data" --create-home --comment "$user_fullname" --password $(mkpasswd $user_password) "$user_logname"
exit 0 |
Quel est le problème ?
Mon compte utilisateur est bien créé, il est correctement assigné au groupe www-data, etc ... bref, tout semble bien se passer. Mais les apparences sont trompeuses ... Lorsque j'essaie de me connecter avec un compte nouvellement créé - ou simplement de faire un "su nouvel_utilisateur" -, l'authentification échoue inévitablement.
J'ai essayé plusieurs solutions, comme de préciser un mot de passe vide dans la commande useradd pour ensuite exécuter un "echo "$user_password" | passwd --stdin $user_logname" mais rien n'y fait.
Je pourrais utiliser adduser mais en dehors des quelques questions posées en début de script, j'aimerais que l'utilisateur n'ai strictement rien à saisir.
Quelqu'un aurait-il une solution à me proposer ? - ou simplement une erreur monumentale à pointer du doigt ? -
Merci d'avance.
N.B. : Pour précision, le serveur fonctionne sous Debian et je teste actuellement mon script sous Ubuntu Dapper Drake - donc théoriquement la même base - une autre personne travaillant simultannément sur la configuration du serveur.