IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Debian Discussion :

Useradd et mot de passe via script


Sujet :

Debian

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 61
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Invité de passage
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 1
    Par défaut
    Amon avis c parce que tu déclare pas la valeur de tes variables:
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Membre émérite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    mkpasswd --hash=md5 $user_password

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/11/2011, 12h19
  2. changement de mot de passe via la console
    Par bilou_2007 dans le forum MySQL
    Réponses: 1
    Dernier message: 23/02/2010, 18h49
  3. Contrôle mot de passe via formulaire de saisie
    Par David1259 dans le forum IHM
    Réponses: 2
    Dernier message: 01/10/2008, 13h36
  4. connexion avec mot de passe via MS-Dos
    Par Sheriff dans le forum Administration
    Réponses: 2
    Dernier message: 30/03/2008, 17h42
  5. Mettre un mot de passe dans script
    Par jeanbi dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 18/01/2007, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo