Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/11/2006, à 01:32

Folken Laëneck

[Résolu] 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 hmm

Voici le code de mon script à l'heure actuelle :

#!/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, au moins en ce qui concerne ces commandes - une autre personne travaillant simultanément sur la configuration du serveur.

Dernière modification par Folken Laëneck (Le 21/11/2006, à 03:05)

Hors ligne

#2 Le 21/11/2006, à 01:53

Beamo

Re : [Résolu] Useradd et mot de passe via script

Bonjour,

Ton problème vient probablement du fait que ton authentification se fait avec des mot de pass crypté avec un md5 alors que la fonction de hachage par défaut de mkpasswd n'est pas du md5.

Essai donc avec la ligne :

useradd --gid "www-data" --create-home --comment "$user_fullname" --password  $(mkpasswd -H md5 $user_password) "$user_logname"

Autre chose actuellement tu ne précises pas de shell, ils risquent donc de tous se retrouver à utiliser /bin/sh alors que tu as peut être déjà configuré leur environnement dans /etc/bashrc et/ou dans le ~/.bashrc de /etc/skel
(mais là je m'avance peut être un peu)

Beamo

Dernière modification par Beamo (Le 21/11/2006, à 01:54)

Hors ligne

#3 Le 21/11/2006, à 02:35

Folken Laëneck

Re : [Résolu] Useradd et mot de passe via script

Bonsoir,

Beamo a écrit :

Ton problème vient probablement du fait que ton authentification se fait avec des mot de pass crypté avec un md5 alors que la fonction de hachage par défaut de mkpasswd n'est pas du md5.

Je me suis justement posé la question cet après-midi et j'avoue ne pas avoir réussi à trouver quel fonction d'encryptage je devais utiliser. - Allez savoir pourquoi, md5 me paraissait trop ... commun sans doute hmm Et parmis toutes la liste des encryptages gérés par mcrypt, je me suis perdu -

useradd --gid "www-data" --create-home --comment "$user_fullname" --password  $(mkpasswd -H md5 $user_password) "$user_logname"

Ceci fonctionne parfaitement, merci ! - Reste maintenant à le tester sur le serveur en lui-même plutôt que sur mon ordinateur perso ... -
Pour ce qui est du shell, effectivement je n'en précise pas, et maintenant que j'arrive à me connecter avec un utilisateur nouvellement créer je me rends compte que je ferrais mieux de le définir.

Merci beaucoup Beamo en tout cas, il va me rester quelques cheveux pour la suite du script :]

Et si les questions d'un noob ne vous ennuient pas trop, peut-être en aurais-je d'autres avant la fin de sa rédaction ... :°

[Hey Dites]
/me cherche toujours le bouton "Marquer comme résolu" ...

Dernière modification par Folken Laëneck (Le 21/11/2006, à 02:43)

Hors ligne

#4 Le 21/11/2006, à 03:00

Beamo

Re : [Résolu] Useradd et mot de passe via script

Tu fais un "modifier" du premier post et tu changes le titre smile

Beamo

Hors ligne

#5 Le 21/11/2006, à 03:07

Folken Laëneck

Re : [Résolu] Useradd et mot de passe via script

Encore merci Beamo - décidemment ^^ -
Je pensais qu'il s'agissait là d'un état particulier du topic géré par le forum comme on peut le voir sur d'autres sites, c'est pour cela que je n'ai pas pensé à cette solution. Mais après tout, elle marche très bien :]

Hors ligne