Création 200 comptes utilisateurs RedHat 9

Fermé
Signaler
-
 metmac -
Bonjour,

J'aimerais savoir s'il est possible de créer des comptes utilisateurs sous RedHat 9 avec un fichier txt en important ce fichier, car j'ai 200 comptes utilisateurs à importer dans Red Hat 9.
Y a t-il une solution pour créer ces 200 comptes sous Red Hat 9 sans saisir les 200 comptes utilisateurs à la main ?
Et également de saisir leur mot de passe grace un fichier texte ?

Merci de votre aide
Marc

24 réponses

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 890
Re-

Alors voilà ce que j'ai pondu ;-))
----------------------------------------------------------------------------------------------------------------------

Création d'utilisateurs d'après un fichier texte contenant :
Nom Prénom mot_de_passe

Génération d'un programme pour générer le crytage des mots de passe.
Commencer par créer un fichier "crypt.c" avec la syntaxe suivante :
#define _XOPEN_SOURCE
#include <unistd.h>
#include <stdio.h>
void main(int argc,char *argv[]) {
          printf("%s\n",crypt(argv[1],"fr"));
         }
Puis compiler le programme :
gcc crypt.c -lcrypt -o cryptage
ou "cryptage" est le nom donné au programme.

La commande pour générer le mot de passe est alors :

./cryptage toto
frpdq6j.w0iTc
ou "toto" est le mot de passe en clair et "frpdq6j.w0iTc" le mot de passe crypté.

Création en ligne de commande d'un utilisateur :
useradd -g ccm -p `./cryptage toto`  utilisateur
Reste plus qu'à adapter cette commande dans un script pour générer toute une floppée d'utilisateur à partir d'un seul et même fichier...

Le script en question :
#!/bin/bash

cat fichier.txt | while read ligne
do
        USERNAME=`echo $ligne | tr "A-Z" "a-z" | awk '{ print $2$1 }'`
        USERGROUP=ccm
        USERPASS=`echo $ligne |tr "A-Z" "a-z" | awk '{ print $3 }' `;
        useradd -g $USERGROUP -p `./cryptage $USERPASS` $USERNAME
done
Le fichier "fichier.txt" :
DURAND Jean jdur
DUPONT Albert adup
LACOSTE Christine clac
Le résultat dans "/etc/passwd" :
jeandurand:x:502:600::/home/jeandurand:/bin/bash
albertdupont:x:503:600::/home/albertdupont:/bin/bash
christinelacoste:x:504:600::/home/christinelacoste:/bin/bash
Le résultat dans "/etc/shadow" :
jeandurand:frMKOwvZ1mOdI:13148:0:99999:7:::
albertdupont:frrXzz7/Xs0Sc:13148:0:99999:7:::
christinelacoste:frSY5XQGKXeqo:13148:0:99999:7:::
Voilà ;-))
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
1564
Date d'inscription
mercredi 30 mars 2005
Statut
Contributeur
Dernière intervention
22 juin 2007
495
Je crois ca a deja ete repondu dans un des sujets precedent mais en principe il suffit de copier les fichiers /etc/passwd et eventuellement aussi /etc/shadow (si on utilise de mot de pass shadow) d'un systeme vers l'autre pour transferer les utilisateurs. Peut-etre il faut aussi transferer le fichier /etc/group.
Si on a deja de nouveaux utilisateurs dans le nouveau systeme qu'on ne souhaite pas ecraser on peut editer le fichier /etc/passwd et y simplement ajouter les lignes qui correspondent aux utilisateurs de l'ancien systeme, bref on ne copie pas le fichier entier mais on prend les lignes associes aux utilisateurs normaux (et pas speciaux comme "admin", "nobody", "ftp", ...) de l'ancien /etc/passwd pour les mettre dans le nouveux /etc/passwd. De meme pour /etc/shadow et /etc/group.

Apres il faut se debrouiller de recreer les repertoires home (dans /home/...) des utilisateurs. Soit on recree tous ces repertoires avec "mkdir" et leur attribue le bon proprietaire avec "chown" ou soit on se debrouille de monter par NFS (eventuellement avec automount) les homes d'une autre machine accessible aux reseau. Dans ce cas il faut que les chemins (de genre /home/toto ) soient identiques sur les deux systemes. La situation avec le mount nfs est assez typique dans de reseaux entreprises ou facs si on a plusieurs pcs avec les memes utilisateurs et les memes fichiers personnels accessibles partout.

Si on veut creer les homes avec mkdir on peut faire avec un script. Supposons on dispose d'un fichier "liste.txt" contenant les noms de tous les utilisateurs (separe par de blancs ou de nouvelles ligens) et supposons qu'on a deja fait la manipe avec /etc/passwd etc. Dans ce cas on peut faire un script comme ca:
LISTE=`cat liste.txt`
for i in $LISTE ; do 
  mkdir /home/$i
  chown $i:users /home/$i
done

on copie ca dans un fichier "script.sh", on le rend executable: "chmod +x script.sh" et on l'execute en root: "./script.sh". Ici j'ai suppose que le group est "users" mais ca peut aussi etre autre chose. Souvent on met aussi le nom de l'utilisateur comme groupe: => "chown $i:$i /home/$i".
Il faut un peu adapter ca a ses besoins.

Toutes ces operations sont un peu delicates et il faut bien faire attention et tester avant de le faire serieusement. Notamment il faut garder de copies de saufegarde de /etc/passwd etc. avant de modifier!!

A part ca il y a aussi la methode d'exporter des utilisateur par le protocole NIS. Dans ce cas il faut faire un serveur NIS avec toutes les utilisateurs et on peut creer de clients NIS pour lesquelles on n'a pas besoin de creer d'utilisateur locaux dans /etc/passwd. A l'instant ou le NIS tourne les utilisateurs sont exportes comme ca si c'est correctement configure mais pour ca il faut entrer dans la doc de NIS. Apres pour changer un mot de pass c'est par exemple: "yppasswd" et pas "passwd" comme pour les mots de pass locaux.
Donc le fichier texte c'est un fichier d'exportation de windows 2000 serveur des comptes utilisateurs, donc ce n'est pas des comptes utilisateurs sous linux le fichier.

Si j'ai les noms et prénoms des comptes utilisateurs de windows 2000 serveur.

Que faut il faire pour créer un fichier qui créer les utilisateurs et pour les comptes soient actifs tous le temps.

J'ai vu qu'on peut créer un compte comme celà :
adduser toto -p motdepassedetoto
Le compte est créer mais n'est pas valide.

Mais je sais pas comment créer un compte avec un nom et prénom.
ex : toto.dechamps

As tu des infos ?
Merci d'avance de ton aide.

@+
Marc
Messages postés
1564
Date d'inscription
mercredi 30 mars 2005
Statut
Contributeur
Dernière intervention
22 juin 2007
495
On peut ajouter d'info supplementaires avec "adduser" en utilisant l'option "-c blabla" et pour blabla on peut mettre le nom entier si on veut mais ca n'a pas de vraie valeur.

Je crois si tu veux relier ta machine a un serveur Windows, tu n'as pas besoin de creer d'utilisateurs Linux (au moins pas seulement) mais aussi d'utilisateurs "samba". samba est le logiciel sous Linux qui permet d'utiliser les protocoles Windows pour partager de fichiers, resources etc. Avec samba on peut faire de serveurs ou de clients pour communiquer avec de pcs Windows et l'equivalent des utilisateurs Windows sont des utilisateurs samba et pas les utilisateurs Linux directes.
Regarde un peu ici:
http://us4.samba.org/samba/
http://lea-linux.org/cached/index/Reseau-partfic-samba.html#
et cherche dans ce forum et avec google apropos de samba. Il y en a pleins de sujets. En principe en Redhat il doit y avoir une version de samba (sur les cds) meme si elle est un peu vielle (comme Redhat 9.0 d'ailleur, plus de 2.5 - 3 ans, il vaut peut-etre mieux passer a Fedora core 4 ou 5 ou a Mandriva 2005 ou 2006).
pouvons nous en discuter via msn ?
mon email si tu veux m'envoyer ton adresse msn : metmac@caramail.com
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 890
Salut,

Peux-tu afficher un morceau de ton fichier contenant les noms des utilisateurs pour voir sa configuration, ainsi que celui contenant les mots de passe ???
(affiche des trucs bidons si tu ne veux pas afficher les identités et "passwords" réels)
J'ai récupérer les nom et prénom des utilisateurs de windows 2000 serveur pour les créer sur RedHat 9 pour ensuite mettre en place postfix pour que les comptes on une messagerie.

j'ai fait adduser pierredufour -p toto -g goup1
donc ca créer l'utilisateur et le mot de passe toto et l'utilisateur est dans le groupe group1.

le problème c'est le compte est désactivé car l'option p pour le mot de passe, désactiv le compte.

Peut on activer le compte également via une ligne de commande ?

Comment je peux créer tous les utilisatreurs en une seule fois ?

@+
par msn peut etre
Marc
Messages postés
1564
Date d'inscription
mercredi 30 mars 2005
Statut
Contributeur
Dernière intervention
22 juin 2007
495
Desole je n'ai pas de compte msn, et a l'instant je n'ai qu'une connexion bas de debit. De plus je ne connais pas les details de samba. Je sais que ca existe pour faire le reseau avec Windows mais pas beaucoup plus.
Il est possible que dans le Redhat il y a un menu de config pour le samba (dans le panneau de configuration ?) mais en effet ce ne serait pas commode de l'utiliser pour 200 utilisateurs.
Exemple :

pierre DUFOUR titi
olivier FRANZ toto


nom prénom motdepasse


voila
ca serait mieux de parler sur msn si tu l'as.

@+
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 890
Merci pour le détail, on va voir ce qu'on peut faire pour toi ;-))

ca serait mieux de parler sur msn si tu l'as.
Non désolé. L'intérêt des forums est que ça puisse servir à tout le monde, donc si on passe par MSN on exclut tout le monde, et pour les éventuelles solutions apportées et surtout pour les inombrables compérences diverses apportées par tout un chacun ;-)
Messages postés
11
Date d'inscription
mardi 20 février 2001
Statut
Membre
Dernière intervention
31 décembre 2005

J'aimerais bien créer ces comptes avec une commande et que le compte soit activé.

J'attends ton aide.
Le problème est que quand tu utilise l'option -p dans "useradd -g ccm -p `./cryptage toto` utilisateur" celà désactive le compte, comment activé les 200 comptes en une seule fois ?

merci de ton aide.
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 890
Re-

Affiche-nous ce que te renvoie :
useradd -D
Chez moi les comptes sont actifs après leur création !
useradd -D affiche :
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel

En mode texte quand je change d'utilisateur je fais :
su fanny
il affiche : /bin/bash: /root/.bashrc: permission non accordée
[fanny@localhost root]$
il demande pas le mot de passe.
Voila je sais pas quoi faire ?

Et en mode graphique quand je regarde sur l'utilisateur créer dans l'onglet "Infos sur le mot de passe" il coche l'option "Activer l'expiration du mot de passe" et il met un avis de changement après 7 jours.
J'aimerais aussi qu'il ne coche pas cette case comme ca les comptes non pas besoin de changer de mot de passe sous 7 jours, peux tu m'aider ?

Merci d'avance de ton aide.
Messages postés
844
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
9 janvier 2017
50
J'aimerais aussi qu'il ne coche pas cette case comme ca les comptes non pas besoin de changer de mot de passe sous 7 jours, peux tu m'aider ?

Tu ne mets tout simplement rien dans ce champs. Comme ça ils ne seront pas obligés de changer de mot de passe régulièrement.
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 890
Re-

il demande pas le mot de passe.
Voila je sais pas quoi faire ?

Ça c'est normal vu que tu es logué en "root", et le message d'erreur c'est parce qu'il (l'utilisateur fanny) essaie de lire le fichier ".bashrc" du compte "root" et qu'il n'a bien évidemment pas les droits nécessaires.

Pour ton problème d'expiration de mot de passe, regarde dans le fichier "/etc/login.defs" les valeurs qui y sont fixées, notamment celle qui définit la durée de vie du mot de passe : PASS_MIN_DAYS 0

Je ne te garantie pas que ce soit la bonne solution... mais !
;-))
Messages postés
844
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
9 janvier 2017
50
On peut fixer la durée du mot de passe pour un utilisateur dans le fichier /etc/shadow. Il suffit juste d'aller au bpon champ (je crois que c'est le 7ième) pour fixer une échéance de cette durée.
Voila ce que j'ai fait :
adduser marcFAIHN -p marcmdp -g 500 -c salle6
passwd -w 750 marcFAIHN

Donc 1ère partie créer l'utilisateur marcFAIHN avec le mot de passe marcmdp faisant partie du groupe 500 et avec le commentaire salle6.
La 2ème partie passe "Avis de changement après jours : 7" à 750.

Mon problème est que quand je créer les utilisateurs le mot de passe n'est pas crypter. Et Postfix a besoin d'avoir les mot de passe crypter pour fonctionner.

Pour que cà marche j'ai du faire celà : passwd marcFAIHN
et j'ai du ressaisir 2 fois le mot de passe.

Comme celà cà crypte le mot de passe mais y a t-il une autre solution car je veux pas ressaisir mes 200 utilisateurs ???

J'attends votre aide.
Marc
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 890
Salut,

De deux choses l'une, ou tu te réfères à la solution que je t'ai donné dans le post #11 :
http://www.commentcamarche.net/forum/affich-2010077#11
ou tu prends celle qui est proposée dans ce thread :
http://www.commentcamarche.net/forum/affich-1647254
Comme tu veux tu choises :-)
Peux tu me donner la ligne de l'autre site avec ces paramètres :
adduser marcFAIHN -p marcmdp -g 500 -c salle6

Dis moi si c'est juste ce que j'écris :
Donc ma ligne :
adduser marcFAIHN -p marcmdp -g 500 -c salle6
Puis :
echo -e "marcmdp\nmarcmdp" | (passwd --stdin marcFAIHN)

Est ce juste ?

A quoi correspond le n devant nmarcmdp ?

Merci d'avance de ta réponse.
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 890
Le "\n" c'est pour simuler un "saut de ligne" et ainsi redonner le second mot de passe...
"man echo" pour toutes les options
echo -e "marcmdp\nmarcmdp" | (passwd --stdin marcFAIHN)

Est ce que cette ligne ci-dessus est juste ?
ou faut il séparer marcmdp \n marcmdp" ?
Ou tout est faux ???
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 890
C'est bon ;-)
>
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020

Salut jipicy,

J'ai mon fichier de création d'utilisateur qui ne fonctionne pas.
J'ai 1500 utilisateurs à créer pour un lycée et mon fichier je n'arrive pas à le lancer, le message est : cannot execute binary file

Que je mette 1500 utilisateurs ou 50 ou 20 ou 10, cà me fait la meme chose, voici 2 comptes du fichier

adduser marcdurand –p 189klomw -g 500 –c CLASS7
adduser pierremarchand –p ftr379k -g 500 –c CLASS6

a l'aide
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 890 > metmac
Re-

et mon fichier je n'arrive pas à le lancer
Quel fichier ???
Si c'est un programme que tu as concocté, affiche-nous le s'il te plaît, ainsi que ses droits :
ls -l  ton_fichier
--
Z'@+...che et Bonne Année 2006.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 
La commande ci dessous fonctionne bien et met bien le mot de passe en crypter mais le problème c'est quand je configure un client du serveur postfix il prend pas en compte le mot de passe.

echo -e "marcmdp\nmarcmdp" | (passwd --stdin marcFAIHN)

Si je fais "passwd marcFAIHN" et que je saisi 2 fois le mot de passe, le client du serveur postfix prend bien en compte le mot de passe.

Pourriez vous me solutionner ce problème ?
Y a t-il une autre commande pour faire une mise à jour de la base de mot de passe encore ?

Merci d'avance de votre aide
j'ai essayé la méthode de cryptage mais il marche pas il y a pleins d'erreur :

donc mon fichier des noms d'utilisateur est de la forme :
nomprenom motdepasse salle6

Donc le nom et le prenom attaché espace mot de passe espace salle6 qui est a mettre en commentaire.

il faut également l'insérer au groupe 500.

@+