logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 23-05-2017 20:20:29

Couscous
Membre
Distrib. : Debian 3.16.43-2
Noyau : Linux 3.16.0-4-amd64
Inscription : 23-05-2017

Ajout d'utilisateurs à partir d'un fichier.

Bonjour/bonsoir,

  Je suis en train de faire un script pour ajouter des utilisateurs à partir d'un fichier avec les noms, mot de passe, shell de telles sortes :
charles,lovelinux,sh
julien,lovebash,bash
jesaispas,secret,sh

Mon script ressemble à :

#!/bin/bash
while read ligne; do
user=`echo "$ligne" | cut -d , -f 1`
mdp=`echo "$ligne" | cut -d , -f 2`
shell=`echo "$ligne" | cut -d , -f 3`
useradd "$user" -m -s "/bin/$shell"
echo "$user:$mdp" | chpasswd
done < /root/verswindows/ah.txt

Le souci c'est qu'après plusieurs tests il devrait fonctionner logiquement mais ce n'est pas le cas sauf si j'édite le fichier passwd en ajoutant un caractère, puis je le supprime. Du coup on pourrait croire que le fichier a besoin d'être rafraîchi mais en redémarrant ça ne change rien.

Edit : à noter que quand je rentre le nom d'utilisateur et son mot de passe, je me connecte et déconnecte aussi vite.

Merci de m'aider !

Dernière modification par Couscous (23-05-2017 22:09:05)

Hors ligne

#2 23-05-2017 20:50:04

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : Ajout d'utilisateurs à partir d'un fichier.

Je suppose que ça utilise le timestamp de passwd du coup vu ce que tu dis ? Aucune idée des raisons, mais si ce n'est que ça, un "touch /etc/passwd" & za.

virtue_signaling.pngpalestine.png

En ligne

#3 23-05-2017 21:18:34

MicP
Membre
Inscription : 29-02-2016

Re : Ajout d'utilisateurs à partir d'un fichier.

Bonsoir

Voir :

man newusers

Hors ligne

#4 23-05-2017 22:04:26

Couscous
Membre
Distrib. : Debian 3.16.43-2
Noyau : Linux 3.16.0-4-amd64
Inscription : 23-05-2017

Re : Ajout d'utilisateurs à partir d'un fichier.

otyugh, j'ai essayé mais déjà je n'ai pas la commande "za"
Merci de ta solution MicP mais du coup ça me pose problème pour les mots de passe car dans le fichier ce ne sont pas des hash donc ça veut dire que je dois les calculer à part...

Il faut lire l'edit j'ai ajouté un détail encore plus bizarre

Merci de vos aides

Dernière modification par Couscous (23-05-2017 22:09:50)

Hors ligne

#5 24-05-2017 00:27:06

MicP
Membre
Inscription : 29-02-2016

Re : Ajout d'utilisateurs à partir d'un fichier.

Bonjour

Pas besoin de calculer le hash des mots de passe,
car la commande newusers n'a besoin que du mot de passe en "clair"
et elle assignera aussi automatiquement UID GID au compte et groupe de l'utilisateur

=======
En se basant sur le format de tes données,
si le contenu du fichier /root/verswindows/ah.txt
est le suivant :

charles,lovelinux,sh
julien,lovebash,bash
jesaispas,secret,sh


Voilà le contenu de ton script légèrement modifié :

#!/bin/bash
maregex="(.*),(.*),(.*)"
while read ligne; do
    [[ "${ligne}" =~ ${maregex} ]] && \
    echo "${BASH_REMATCH[1]}:${BASH_REMATCH[2]}::::/home/${BASH_REMATCH[1]}:/bin/${BASH_REMATCH[3]}" | newusers
done < /root/verswindows/ah.txt
 

Dernière modification par MicP (24-05-2017 20:33:19)

Hors ligne

#6 25-05-2017 16:43:57

Couscous
Membre
Distrib. : Debian 3.16.43-2
Noyau : Linux 3.16.0-4-amd64
Inscription : 23-05-2017

Re : Ajout d'utilisateurs à partir d'un fichier.

Bonjour,

Pourriez-vous m'expliquer les deux lignes ajoutées ? Je n'ai jamais utilisé cette syntaxe alors je ne comprends quasi rien car je commence seulement.

On fait quoi exactement avec la variable maragex ?

On peut mettre des () à la place des {} et inversement ? Je ne comprends pas le =~. Puis les doubles [], $$ \ et enfin pour finir les ${BASH_REMATCH[1]

Encore merci ça fait plaisir !

Je copierais les solutions dans l'autre forum.

Dernière modification par Couscous (25-05-2017 16:44:43)

Hors ligne

#7 25-05-2017 17:56:10

Couscous
Membre
Distrib. : Debian 3.16.43-2
Noyau : Linux 3.16.0-4-amd64
Inscription : 23-05-2017

Re : Ajout d'utilisateurs à partir d'un fichier.

Pour finir ça fonctionne depuis que j'ai ajouté une virgule à la fin de mon fichier texte :

bourgeois,ilovelinux,bash,
lenain,lpsselcelc,sh,
mejdoub,ahlala,bash,
zola,pasla,sh,
baleine,1234567,bash,

Et comme je comprenais pas la syntaxe utilisée plus haut donc j'ai continué avec mon script :

#!/bin/bash
while read ligne; do
user=`echo "$ligne" | cut -d , -f 1`
mdp=`echo "$ligne" | cut -d , -f 2`
shell=`echo "$ligne" | cut -d , -f 3`
echo "$user":"$mdp"::::/home/"$users":/bin/"$shell" | newusers
done < /root/verswindows/ah.txt

Merci à vous

A mon avis le bug est à cause du fichier texte car on prenait en même temps le caractère du saut à la ligne

Dernière modification par Couscous (25-05-2017 18:02:51)

Hors ligne

#8 25-05-2017 18:14:09

MicP
Membre
Inscription : 29-02-2016

Re : Ajout d'utilisateurs à partir d'un fichier.

…Pourriez-vous m'expliquer …


Désolé si j'ai été un peu long à tenter de rédiger un essais d'explication,
mais j'étais occupé à répondre dans un autre fil
et ça donnerait un message d'explication beaucoup trop long.

Content que tu aies pu faire fonctionner ton script.

Dernière modification par MicP (25-05-2017 18:27:25)

Hors ligne

Pied de page des forums