Script pour générer des comptes

David -  
jisisv Messages postés 3678 Statut Modérateur -
Bonjour,

Existerait-t'il un script qui génèrerait à partir d'une liste de type "NOM Prénom", un login, un mot de passe et qui créerait les comptes en conséquences ?

Merci pour toute suggestion

2 réponses

  1. jisisv Messages postés 3678 Statut Modérateur 936
     
    useradd peut répondre à ta demande
    USERADD(8)                                                          USERADD(8)
    
    
    
    NOM
           useradd  -  Créer  un nouvel utilisateur ou mettre à jour l'information
           par défaut sur un nouvel utilisateur
    
    SYNOPSIS
           useradd [-c commentaire] [-d rép_perso]
                   [-e date_expiration] [-f inactive_time]
                   [-g groupe_initial] [-G groupe[,...]]
                   [-m [-k rép_squelette] | -M] [-p mot_de_passe]
                   [-s shell] [-u uid [ -o]] [-n] [-r] login
    
           useradd -D [-g groupe_défaut] [-b rép_perso_défaut]
                   [-f inactivité] [-e date_expiration_défaut]
                   [-s shell_défaut]
    <cut/>
    

    Sous Debian
    [johand@horus]~ $dpkg -S /usr/sbin/useradd
    passwd: /usr/sbin/useradd

    Paquetage passwd

    Johan
    0
    1. David
       
      Oui ok, pour useradd, mais moi je me met dans le cas où il existerait une liste d'une centaine de "client" (de la forme DUPONT Henri, KERVADEC Jean Yves ..., mais en colonne). J'aimerais qu'à partir de cette liste, le script extrait les infos, et utilise par exemple useradd pour créer les comptes (et génération aussi d'un mot de passe etc), sans que je n'ai a tapé cent fois la meme commande...
      0
  2. jisisv Messages postés 3678 Statut Modérateur 936
     
    Une possibilité (avec variations innombrables, ajout de répertoire perso, groupe...)
    horus:/home/johand# cat theusers.csv
    Toto Le heros,tlh,/bin/bash
    Zebulon,zbl,/bin/bash
    restricted,rstrctd,/bin/false
    horus:/home/johand# cat theusers.csv |while read line; do username=$(echo $line|cut -d ',' -f2);
    > usershell=$(echo $line|cut -d ',' -f3)
    > useradd -g users -p secret -s $usershell $username
    > done
    horus:/home/johand# tail -3 /etc/passwd
    tlh:x:1005:100::/home/tlh:/bin/bash
    zbl:x:1006:100::/home/zbl:/bin/bash
    rstrctd:x:1007:100::/home/rstrctd:/bin/false
    
    0