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

Linux Discussion :

shell - créer des comptes à partir d'un fichier


Sujet :

Linux

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2008
    Messages : 25
    Points : 28
    Points
    28
    Par défaut shell - créer des comptes à partir d'un fichier
    Bien le bonjour,

    Donc voilà je suis entrai de mettre ne place un script pour créer des utilisateur samba à partir d'un fichier. Mon fichier se compose comme ceci :
    login:pass
    J'ai récupérer plusieur script sur le net que j'ai fusionné et modifié pour obtenir un fonction comme ceci :
    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
     
    creer_user_a()
    {
    	echo "Donner le chemin jusqu'au fichier : "
    	read dir
    #on vérifie si le fichier entré en paramêtre existe	
    	if [ -e $dir ]
    	then
    		while read ligne #pour chaque ligne
    		do
    			echo $ligne | cut -d: -f1
    			echo $ligne | cut -d: -f2
    #pre reçoit la 1ere partie de la ligne séparée par “ : ”
    			login=$(echo $ligne | cut -d: -f1) 
    			pass=$(echo $ligne | cut -d: -f2)
    #on écrit le login et mot de passe dans comptes.txt
    			echo $login":"$pass >> comptes.txt
    #création du compte unix
    			useradd -d /home/$login -m -s /bin/false $login
    #création compte samba
    			echo -e "$pass\n$pass" | smbpasswd -a -s $login
    		done < "$dir"
    	else
    		echo "fichier "$dir" non trouvé"
    	fi 
    }
    le problème qui se pose est je ne sais pour que raison useradd n'est pas accepter (en faîtes samba considère que l'utilisateur n'existe pas alors que celui-ci est bien présent) je suis obligé de faire avec adduser et là il faut un mot de passe est nécessaire donc j'ai tenté différent truc mais je me retrouve avec un boucle infinie à chaque fois:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    echo -e "$pass\n$pass" | adduser -$user
     
    echo ( $pass ; $pass ) | adduser -$user
     
    adduser $login
    echo $pass
    Donc en faîtes j'aimerais bien faire avec useradd mais si cela n'est pas possible comment faire avec adduser.

    Merci d'avance.

    PS: je suis sur une Debian 4.0

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2008
    Messages : 25
    Points : 28
    Points
    28
    Par défaut
    Et bien faîtes j'ai réussi à régler mon problème. Alors je sais pas pourquoi mais j'ai réinstaller Samba et la c'est bon il accepte "useradd" et j'ai trouvé avec adduser il suffit d'ajouter l'option "--disabled-passord" pour ainsi par rentré de mot de passe. En plus cela améliore la sécurité car les comptes ne sont pas utilisable en local sur la machine, seulement sur samba. Donc au final la totalité de mon script me donne ceci :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
     
    #! /bin/sh
     
    #Fonction pour créer un utilisateur manuellement
    creer_user_m()
    {
    	echo "Nom utilisateur :"
    	read user
    	adduser $user
    	echo "L'utilisateur "$user" a été correctement créer sur le système."
    	smbpasswd -a $user
    	echo "L'utilisateur "$user" a été créer comme utilisateur samba avec succés."
    }
     
    #Fonction  pour créer plusieurs utilisateurs inscrit dant un fichier texte
    creer_user_a()
    {
    	echo "Donner le chemin jusqu'au fichier : "
    	read dir
    #on vérifie si le fichier entré en paramêtre existe	
    	if [ -e $dir ]
    	then
    		while read ligne #pour chaque ligne
    		do
    #reçoit la 1ere partie de la ligne séparée par “ : ”
    			user=$(echo $ligne | cut -d: -f1)
    #reçoit la 2ème partie de la ligne séparée par “ : ”			
    			pass=$(echo $ligne | cut -d: -f2)
    #on écrit le login et mot de passe dans comptes.txt en incremantant à chaque fois (pour ainsi suprimer facilement plus tard)
    			echo $user":"$pass >> comptes.txt
    #création du compte unix
    			useradd -d /home/$user -m -s /bin/false $user
    			echo "L'utilisateur "$user" a été correctement créer sur le système."
    # Autre solution ###################################
    #			adduser --disabled-passsword $login
    ####################################################
    #création compte samba
    			echo -e "$pass\n$pass" | smbpasswd -a -s $user
    			echo "L'utilisateur "$user" a été créer comme utilisateur samba avec succés."
    		done < "$dir"
    	else
    		echo "fichier "$dir" non trouvé"
    	fi 
    }
     
    Fonction pour surpimer un utilisateur manuellement
    delete_user_m()
    {
    	echo "Nom utilisateur :"
    	read user
    	smbpasswd -x $user
    	echo "L'utilisateur "$user" a été suprimé sur Samba avec succés."
    	userdel $user
    	echo "L'utilisateur "$user" a été correctement suprimé sur le système."
    }
     
    Fonction  pour suprimer plusieurs utilisateurs inscrit dant un fichier texte
    delete_user_a()
    {
    	echo "Donner le chemin jusqu'au fichier : "
    		read $dir
    		if [ -e $dir ] #on vérifie si le fichier entré en paramêtre existe
    		then
    			while read ligne #pour chaque ligne
    			do
    				user=$(echo $ligne | cut -d: -f1) #pre reçoit la 1ere partie de la ligne séparée par “ : ”
    				smbpasswd -x $user
    				echo "L'utilisateur "$user" a été suprimé sur Samba avec succés."
    				userdel $user
    				echo "L'utilisateur "$user" a été correctement suprimé sur le système."
    			done < $dir
    		else
    			echo "fichier "$dir" non trouvé"
    		fi 
    }
     
    #Génération du menu avec les different qui font appelle aux fonction
    for choix in 1 2 3 4 5
    do
    echo ""
    echo "Que voulez vous faire : "
    echo ""
    echo "1 - Créer un utlisateur manuellement"
    echo "2 - Créer des utilisateurs à partir d'un fichier"
    echo "3 - Suprimer un utlisateur manuellement"
    echo "4 - Suprimer des utilisateurs à partir d'un fichier"
    echo "5 - Quitter"
    echo ""
    echo "Votre choix : "
    read choix
     
    case $choix in
    1)
    creer_user_m
    ;;
    2)
    creer_user_a
    ;;
    3)
    delete_user_m
    ;;
    4)
    delete_user_a
    ;;
    5)
    exit 0
    ;;
    *)
    echo "valeur invalide"
    ;;
    esac
    done

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

Discussions similaires

  1. Créer des graphiques à partir de différents fichiers
    Par merlinus3000 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/12/2013, 16h03
  2. comment créer des .lib à partir de fichiers DEF?
    Par YOUBOY dans le forum Visual C++
    Réponses: 5
    Dernier message: 15/06/2007, 09h54
  3. Créer des imagettes à partir des fichires TIF
    Par Chikh001 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 03/05/2006, 11h59
  4. Réponses: 4
    Dernier message: 19/03/2006, 15h20
  5. Comment créer des relances à partir d'1 table
    Par Rod_75 dans le forum Access
    Réponses: 9
    Dernier message: 01/03/2006, 15h42

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