Précédent   Forum des professionnels en informatique > Systèmes > Linux > Distributions > Debian
Debian Vos questions sur la distribution Debian
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/11/2006, 17h08   #1
Membre du Club
 
Inscription : juillet 2005
Messages : 62
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 62
Points : 65
Points : 65
Par défaut 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.
Folken Laëneck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2007, 04h45   #2
Invité de passage
 
Inscription : mai 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 1
Points : 1
Points : 1
Amon avis c parce que tu déclare pas la valeur de tes variables:
ex:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
echo "Nom de login :"
input $user_fullname
echo "Mot de passe :"
input $user_password
echo "Confirmer le mot de passe :"
input $confirm_password
 
if [ $user_password != $confirm_password ]
then
#	Erreur : mot de passe non confirmé
	exit 1
fi
 
echo "Adresse e-mail :"
input $adress_mail
 
# Création de l'utilisateur
useradd --gid "www-data" --create-home --comment "$user_fullname" --password  $(mkpasswd $user_password) "$user_logname"
 
exit 0
Essaye ca mai je ne garanti rien
D'apres ton code tu ne stock pas les entrées de l'utilisateur dans tes variables et c de la que vien le probleme
Darkinvader est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2007, 13h48   #3
Membre émérite
 
Avatar de Celelibi
 
Inscription : janvier 2004
Messages : 990
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 990
Points : 822
Points : 822
Darkinvader, dans un script bash, les lectures au clavier se font par la commande read. De plus à la commande read il faut préciser un nom de variable, et pas une valeur de variable ; donc sans le $ devant.


Folken Laëneck
Citation:
Envoyé par man useradd
-p, --password MOT_DE_PASSE
Le mot de passe chiffré, comme renvoyé par crypt(3). Le comportement par défaut est de désactiver
le compte.
Il me semble que ceci est erronné car sur la plus part des système il s'agit d'un MD5 salé qui est stocké dans le fichier /etc/shadow et non d'un DES (comme renvoyé par la fonction crypt).
Donc essaye de chiffrer le mot de passe avec
Code :
mkpasswd --hash=md5 $user_password
__________________
Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.
Celelibi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h46.


 
 
 
 
Partenaires

Hébergement Web