Script de creation d'utilisateur et de password

Script de creation d'utilisateur et de password - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 01-03-2006 à 14:31:30    

[J'ai cherche et j'ai pas trouve de topic avec un probleme similaire]
 
Voila, depuis quelques jours, je crees un script d'auto-onstallation pour une Gentoo. Le script est presque termine mais je butes a la creation de l'utilisateur et de son mot de passe.
La creation de l'utilisateur se deroule sans message d'erreur alors que la creation du mot de passe avec passwd me renvoie un erreur du type "l'Utilisateur machin n'existe pas" :/
 
Le script que j'ai ecris donne ca:

Citation :


#Adding user
echo "Adding user now, please type your username, then hit [Enter] to continue"
read user_name
$user_name
useradd -m -G users,wheel,audio,cdrom,floppy,games,usb,video -s /bin/bash $user_name
echo "$user_name account had been successfully added !!"
 
#Creating user password
echo "Creating user password. Type it two times"
passwd $user_name


Je sais que la variable $user_name est correctement utilisee car useradd et echo la recoivent.
La ou ca bloque, c'est pour passwd (voir plus haut).
En cherchant des solutions a mon probleme, je suis tombe sur des reponses type "Tu devrais utiliser expect" :/
J'ai pas trouve de script utilisant cette commande, donc, j'ai laisse tomber (mais j'ai a peu pres compris a quoi elle servait  :sweat: )
Et puis je suis tombe sur ca:

Citation :


#! /bin/bash
 
echo "Super User Add !!"
echo -n "Nom de l'utilisateur : "
read login
echo -n "Son passwd : "
read pass
echo -n "Son groupe : "
read groupe
 
groupadd ${groupe}
useradd  -g ${groupe}  -m -s /bin/bash -p `openssl passwd -salt RanDom -1 ${pass}` ${login}


Et ce script marche parfaitement  :cry:  :sweat:  :pfff:  
Ca m'embete car quand j'essaye d'integrer ce script au mien, ca ne marche pas  :pt1cable:  
Voila le resultat:

Citation :


#!/bin/sh
 
#Adding user
 
echo "Adding user now, please type your username : "
read user_name
 
#Creating user password
echo "Creating user password, please type your password : "
read pass
 
useradd  -m -G users,wheel,audio,cdrom,floppy,games,usb,video -s /bin/bash -p `openssl passwd -salt RanDom -1 ${pass}` ${user_name}
 
echo "$user_name account had been successfully added !!"


 
Vous pouvez me dire ou je suis lamentablement plante ?  :lol:


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 01-03-2006 à 14:31:30   

Reply

Marsh Posté le 01-03-2006 à 15:45:12    

tu as des messages d'erreurs dans la console?


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
Reply

Marsh Posté le 01-03-2006 à 16:27:49    

Ben euh...  

Citation :


Adding user now, please type your username :
test
Creating user password, please type your password :
test
useradd : groupe wheel inconnu
useradd : groupe usb inconnu
test account had been successfully added !!


 
Pas de messages d'erreurs.... et pas de compte "test" cree non plus !! :cry: (oui, je me suis logge en root, quand meme)


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 01-03-2006 à 16:44:42    

ton useradd plante donc c'est normal que passwd plante... tu devrais vérifier les valeurs de retour avec $?

Reply

Marsh Posté le 01-03-2006 à 16:57:31    

Je fais ca comment ?


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 02-03-2006 à 09:25:44    

ben:

useradd ton_bousin
if [ $? == 0 ]
then
echo "tout va bien"
passwd $toto
else
echo "c'est la m..."
fi

Reply

Marsh Posté le 02-03-2006 à 11:21:03    

Merci, ca marche bien !!
Pour ceux que ca interesserait:

Citation :


#!/bin/sh
 
#Adding user
echo "Adding user now, please type your user name."
read user_name
 
useradd -m -G users,wheel,audio,cdrom,floppy,games,usb,video -s /bin/bash $user_name
if [ $? == 0 ]
then
echo "$user_name account had been successfully added !!"
#echo "Now, you'll be asked to create your password"
passwd $user_name
else
echo "Do it again..."
fi


 
Un autre souci:
Si les 2 passwords different, comment faire pour faire repartir la commande passwd ? (je me doutes qu'il s'agit d'une boucle)
Je cherche actuellement.


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 02-03-2006 à 11:39:48    

Il faudrait trouver le signal que renvoie passwd en cas de password faux et faire une boucle while ou for qui test si le signal renvoyé est juste ou faux.


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
Reply

Marsh Posté le 02-03-2006 à 14:44:36    

une boucle avec la même technique:

while [ $? != 0 ]
do
   passwd $user_name
done

Reply

Marsh Posté le 02-03-2006 à 15:15:46    

euh je dis peut etre une connerie mais tu as essayer avec l option --stdin ?
moi je fais comme ca :
echo "$mdp" | passwd --stdin $login


---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !
Reply

Marsh Posté le 02-03-2006 à 15:15:46   

Reply

Marsh Posté le 02-03-2006 à 15:29:29    

Oliv >> Je vais tester ta solution.
 
Le_Tolier >> Il ne reconnait pas cette option (il croit que c'est un user  :pt1cable: )
 
Sinon, oui je l'avais deja teste... :/


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 02-03-2006 à 16:04:48    

C est bizarre elle est mentionné ici.
Tu est sur quel system ?


---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !
Reply

Marsh Posté le 02-03-2006 à 18:41:19    

Le_Tolier a écrit :

Tu est sur quel system ?


 
Debian 3.1


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 08-03-2006 à 23:28:09    

Je m'y suis remis a ce script dans l'apres midi et je viens de trouver la bonne solution.
Donc, pour ceux que ca pourrait eventuellement interesser, voila la chose:


#!/bin/sh
 
#Adding user
echo "Adding user now, please type your user name."
read user_name
 
useradd -m -G users,wheel,audio,cdrom,floppy,games,usb,video -s /bin/bash $user_name
while [ $? != 0 ]
do
if [ $? == 0 ]
 
then
echo "$user_name account had been successfully added !!"
echo "Now, you'll be asked to create your password"
   passwd $user_name
else
echo "Do it again..."
fi
done


 
J'avoues que c'est assez moche, mais bon, ca fonctionne, donc, ca me va...
 
Je vous remercie de votre aide et de votre patience... =)
 
Dites,  j'ai un probleme un peu etrange avec une autre partie du script.
Je cree un autre topic ou je postes ici ?


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 09-03-2006 à 09:23:28    

arf tu peux peut etre le poster la  ;)


---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !
Reply

Marsh Posté le 09-03-2006 à 10:28:52    

Je vais me pendre... :/
Le script que j'ai poste hier ne fonctionne pas...
 
Je vais peut-etre pas vous embeter avec un autre probleme...  :pfff:


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 09-03-2006 à 10:30:38    

pourquoi il ne fonctionne pas ?


---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !
Reply

Marsh Posté le 09-03-2006 à 10:45:38    

L'utilisateur est cree et... c'est tout [pas de password, rien, que dalle...]
Mais qu'est-ce que j'ai ecrit comme c*nnerie, moi ? -_-


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 09-03-2006 à 10:56:08    

Fork Bomb a écrit :

L'utilisateur est cree et... c'est tout [pas de password, rien, que dalle...]
Mais qu'est-ce que j'ai ecrit comme c*nnerie, moi ? -_-


 
 
tu fais un while [ $? != 0 ] or la création de ton user a marché donc le $? vaut 0 donc tu rentre pas le while CQFD  ;)
 
Edit: ça ça fonctionne :  

Code :
  1. #!/bin/sh
  2. #Adding user
  3. echo "Adding user now, please type your user name."
  4. read user_name
  5. echo $user_name
  6.   useradd -m  -s /bin/bash $user_name
  7.    echo "$user_name account had been successfully added !!"
  8.    echo "Now, you'll be asked to create your password"
  9.       passwd $user_name
  10.    while [ $? != 0 ]
  11.    do
  12.         echo "Do it again..."
  13.         passwd $user_name
  14.    done
  15.    echo "pwd ok"


Message édité par Le_Tolier le 09-03-2006 à 11:02:23

---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !
Reply

Marsh Posté le 09-03-2006 à 12:33:29    

A mon avis, tu lui donne des groupes qui n'existe pas encore donc la commande useradd plante.  [:xice007]

Reply

Marsh Posté le 09-03-2006 à 18:05:18    

Ca marche d'enfer....
Merci ^^
---
Si ca vous derange pas trop (j'espere), je vosu expose un probleme pour le moins bizarre...
 
Il s'agit d'un enchainement de commande qui ne fonctionne qu'a moitie (toujours sur le meme script).
 
Si je cree mes partitions a la main (fdisk + mkfs sans le script), mkfs me dit rien (pas de message d'erreur, que dalle).
En revanche, en utilisant mon script, mkfs gueule comme quoi les partitions que je lui demandes de formatter n'existent pas !!!.
Cela vient donc de mon script et de la facon dont j'enchaine ces 2 commandes.
 
Voici la partie de mon script que je pense incriminee:


fdisk /dev/hda
 
#Formatting partitions
echo ""
echo ""
echo "Formating partitions..."
sleep 2
mke2fs /dev/hda1
mke2fs -j /dev/hda3
mkswap /dev/hda2
swapon /dev/hda2


 
Que ce soit a la main ou en utilisant le script, je me sers exactement du meme plan de partitionnment... :/
 
Si vous avez une idee, je suis preneur...


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 09-03-2006 à 22:11:58    

C est quoi le message d erreur ?

Reply

Marsh Posté le 09-03-2006 à 22:15:16    

mkfs dir qu'i trouve pas les partitions que je viens de creer... :/ [le message precis, desole je l'ai pas]


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 10-03-2006 à 08:34:47    

mets des && entre chaque commande, tu verras si ca bloque au mileiu du script.


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
Reply

Marsh Posté le 10-03-2006 à 09:12:46    

Ou dans la même optique set -x pour voir quels commande bloque


---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !
Reply

Marsh Posté le 10-03-2006 à 13:46:45    

Je sais comment me servir de la comande && (mais je dis pas que j'y avais pense, hein).
Je l'avais deja vu en exemple.
Je me demandais si je pouvais taper les commandes sous cette forme :
 


commande1 &&
commande2 &&
commande3 &&
...


 
A votre avis ?


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 10-03-2006 à 14:09:23    

Fork Bomb a écrit :

Je me demandais si je pouvais taper les commandes sous cette forme :

commande1 &&
commande2 &&
commande3 &&
...



Oui, à condition d'échapper les caractères de fin de ligne :

commande1 && \
commande2 && \
commande3


Message édité par franceso le 10-03-2006 à 14:10:33

---------------
TriScale innov
Reply

Marsh Posté le 10-03-2006 à 14:11:28    

Francesco > Ok, je vais faire comme ca.
Merci.


Message édité par Fork Bomb le 10-03-2006 à 14:11:44

---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 11-03-2006 à 13:44:05    

Ca marche pas -.-
Je vais essayer en intercalant une commande entre les 2 [genre un "echo"...]


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 11-03-2006 à 14:14:20    

Petite question:
-quand tu fais ton fdisk, tu n'aurais pas ce message

Appel de ioctl() pour relire la table de partitions.
 
AVERTISSEMENT: la re-lecture de la table de partitions a échoué avec l'erreur 16: Périphérique ou ressource occupé.
Le kernel va continuer d'utiliser l'ancienne table.
La nouvelle table sera utilisé lors du prochain réamorçage.


si c'est le cas, c'est donc normal que tu te fasses jeter lors du mke2fs ;)

Reply

Marsh Posté le 11-03-2006 à 17:47:26    

Nan, pas ce message.
Les messages d'erreurs viennent de mke2fs
A partir de maintenant, je vais faire mes manips sur hdb, je pourrais C/C les messages d'erreurs.


Message édité par Fork Bomb le 11-03-2006 à 17:49:00

---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 22-03-2006 à 12:01:49    

Je deterre mon topic car j'ai encore besoin d'aide (desole de vous solliciter autant...)
 
Bon, ben je m'y suis remis il y a peu...
 
Voila le plan de partitionnment utilise:

Code :
  1. #############################
  2. # --Values to enter--
  3. #
  4. # -1st partition-
  5. #
  6. # n,p,1,[Enter],+32M
  7. #
  8. # -Creating Swap-
  9. #
  10. # n,p,2,[Enter],+512,t,2,82
  11. #
  12. # -Main partition-
  13. #
  14. # n,p,3,[Enter],[Enter]
  15. #
  16. # -Saving settings-
  17. #
  18. # w
  19. #############################
  20. fdisk /dev/hdb
  21. #exit
  22. continue
  23. mkfs -t ext2 /dev/hdb1
  24. mkfs -t ext3 /dev/hdb3
  25. mkswap /dev/hdb2
  26. swapon /dev/hdb2


 
Le exit est commente car ca fait pas ce que je veux (ca sort pas de la commande, ca sort du script :/)
 
Quant aux messages de mkfs, ils disent qu'ils trouvent pas mes part'.
Je retestes et je vous C/C les messages exacts.
 
Attention, c'est long
 


La table de partitions a été altérée!
 
Appel de ioctl() pour relire la table de partitions.
 
AVERTISSEMENT: la re-lecture de la table de partitions a échoué avec l'erreur 16: Périphérique ou ressource occupé.
Le kernel va continuer d'utiliser l'ancienne table.
La nouvelle table sera utilisé lors du prochain réamorçage.
Synchronisation des disques.
mke2fs 1.38 (30-Jun-2005)
/dev/hdb1 est monté; ne fera pas un système de fichiers ici!
mke2fs 1.38 (30-Jun-2005)
Étiquette de système de fichiers=
Type de système d'exploitation: Linux
Taille de bloc=4096 (log=2)
Taille de fragment=4096 (log=2)
458752 inodes, 916650 blocs
45832 blocs (5.00%) réservé pour le super usager
Premier bloc de données=0
28 bloc de groupes
32768 blocs par groupe, 32768 fragments par groupe
16384 inodes par groupe
Archive du superbloc stockée sur les blocs:
        32768, 98304, 163840, 229376, 294912, 819200, 884736
 
Écriture des tables d'inodes: complété
Création du journal (16384 blocs): complété
Écriture des superblocs et de l'information de comptabilité du système de fichiers: complété
 
Le système de fichiers sera automatiquement vérifié tous les 23 montages ou après
180 jours, selon la première éventualité.  Utiliser tune2fs -c ou -i pour écraser la valeur.
Initialisation de la version de l'espace de swap 1, taille = 512479 kB
no label, UUID=55ddc86c-a718-4a77-b740-7d536b7977a8
Mounting partitions...
mount: le point de montage /mnt/gentoo n'existe pas
mkdir: Ne peut créer le répertoire `/mnt/gentoo/boot': Aucun fichier ou répertoire de ce type
mount: le point de montage /mnt/gentoo/boot n'existe pas


 
Normalement, j'ai pas tous ces messages, j'en ai moins.
Mais comme je l'expliquais plus haut, mkfs me hurle dessus qu'il ne trouve pas les partitions que je viens de creer...
 
Franchement, si vous avez une idee, je suis preneur...


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 22-03-2006 à 12:33:37    

0liv a écrit :

Petite question:
-quand tu fais ton fdisk, tu n'aurais pas ce message

Appel de ioctl() pour relire la table de partitions.
 
AVERTISSEMENT: la re-lecture de la table de partitions a échoué avec l'erreur 16: Périphérique ou ressource occupé.
Le kernel va continuer d'utiliser l'ancienne table.
La nouvelle table sera utilisé lors du prochain réamorçage.


si c'est le cas, c'est donc normal que tu te fasses jeter lors du mke2fs ;)


:gratgrat: bizarre ton message d'erreur ressemble à celui que je t'avais indiqué il y a 10 jours de cela...
voilà l'endroit important du message:

Citation :

Périphérique ou ressource occupé.
Le kernel va continuer d'utiliser l'ancienne table.
La nouvelle table sera utilisé lors du prochain réamorçage


donc ton noyau n'a pas du tout conscience des nouveaux devices créés... donc il ne peut pas les formater vu que pour lui ils n'existent pas

Reply

Marsh Posté le 22-03-2006 à 12:36:54    

J'ai pas ces messages lors de l'install de la Gentoo (la, c'etait en "local" [sur HDB])


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 22-03-2006 à 13:40:52    

Lors de l'install de la gentoo ton disque n'est pas monté, alors que là il doit être monté donc en cours d'utilisation (par le système du moins).

Reply

Marsh Posté le 22-03-2006 à 13:50:06    

Donc, pour les tests en local, un coup de umount
Mais pour enchainer les 2 commandes en script, t'as une idee ?


Message édité par Fork Bomb le 22-03-2006 à 13:56:06

---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed