Probleme de script

Probleme de script - Multimédia - Linux et OS Alternatifs

Marsh Posté le 30-07-2002 à 15:02:51    

Salut,
 
Je voulais faire un script qui me permette de creer des users automatiquement mais apparemment le mot de pass pose un probleme :
 

Code :
  1. adduser -g ftp -p $2 $1


 
j'appelle le script comme ca  


./mon_script.sh login passwd


 
Pourquoi ca marche pas ? Il cree bien le user avec son home directory et tout, mais apparemment il ne prend pas le mot de passe ??


Message édité par Gaellick le 30-07-2002 à 15:03:16

---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 30-07-2002 à 15:02:51   

Reply

Marsh Posté le 30-07-2002 à 15:05:03    

quelle est l'erreur ?  
 
tu le lances en root j'imagine aussi ?

Reply

Marsh Posté le 30-07-2002 à 15:06:54    

je viens de pondre un script identique et ca fonctionne chez moi

Reply

Marsh Posté le 30-07-2002 à 15:08:06    

Oui je le lance en root. Le probleme apparemment c'est qu'il ne prend pas le mot de passe que je lui donne puisque lorsque j'essaie de me connecter au FTP avec le login et le mot de passe, l'authentification passe pas, le login est bien cree mais pas de mot de passe apparemment :??:


Message édité par Gaellick le 30-07-2002 à 15:08:22

---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 30-07-2002 à 15:11:54    

Je viens de reessaye et ca marche toujours pas ??
 
Fait voir ton script stp.


---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 30-07-2002 à 15:13:07    

add.sh
 
#!/bin/sh
 
adduser -g test -p $2 $1  
 
 
./add.sh toto machin  
 
cat /etc/passwd
 
test:x:512:516::/home/test:/bin/bash
toto:x:513:516::/home/toto:/bin/bash

Reply

Marsh Posté le 30-07-2002 à 15:13:45    

userdel toto test

Reply

Marsh Posté le 30-07-2002 à 15:21:25    

Et le mot de pas machin il est ou ?
 
Apparemment -p permet de passer un mot de pass mais crypte, j'ai essaye de le crypter avec la commande crypt


PASS=`crypt ($2,a9)`
adduser -g ftp -p $PASS $1


 
Mais ca marche pas non plus, la syntaxe de crypt a pas l'air bonne pourtant c'est marque comme ca dans le man crypt ?


---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 30-07-2002 à 15:24:55    

le pass n'apparait pas dans /etc/password  , c'est dans /etc/shadow ...( et crypté )

Reply

Marsh Posté le 30-07-2002 à 15:27:39    

superX a écrit a écrit :

le pass n'apparait pas dans /etc/password  , c'est dans /etc/shadow ...( et crypté )




 
Et t'as essaye de voir si le pass machin que tu lui passes en parametre fonctionne ? Parceque moi aussi il me cree bien le user, mais le mot de passe marche pas.


---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 30-07-2002 à 15:27:39   

Reply

Marsh Posté le 30-07-2002 à 15:29:16    

raaah bonne question j'avais pas essayé ... et ca fonctionne pas :/  
 

Reply

Marsh Posté le 30-07-2002 à 15:30:57    

le pass est meme en clair dans /etc/shadow !!! wow !  

Reply

Marsh Posté le 30-07-2002 à 15:32:03    

superX a écrit a écrit :

le pass est meme en clair dans /etc/shadow !!! wow !  
 




 
Je crois que c'est un probleme de cryptage mais la commande 'crypt' j'arrive pas a la faire marcher :(


Message édité par Gaellick le 30-07-2002 à 15:32:16

---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 30-07-2002 à 15:32:51    

d'apres le man il faut fournir le pass déjà crypté :/  
 
     -p passwd
              The encrypted password, as returned by crypt(3) or an MD5  password  generator.  The default is to disable the account.

Reply

Marsh Posté le 30-07-2002 à 15:35:28    

superX a écrit a écrit :

d'apres le man il faut fournir le pass déjà crypté :/  
 
     -p passwd
              The encrypted password, as returned by crypt(3) or an MD5  password  generator.  The default is to disable the account.
 




 
C'est bien ce que j'avais cru comprendre :D
C'est pour ca que j'ai esaye de le crypter avec 'crypt' mais j'y arrve pas a chaque fois il me retourne une erreur sur la syntaxe :(
 
Bon faut que j'y aille, je reviens tout a l'heure.


---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 30-07-2002 à 17:14:24    

Si je ne m'abuse, la fonction crypt dont on obtient la doc avec "man crypt" est une fonction en C, donc à utiliser dans un programme en C avec les bons  includes... et pas en bashscript.

Reply

Marsh Posté le 30-07-2002 à 20:37:22    

essaye ca :
$user
$mdp
echo $mdp | passwd --stdin $user
 
la syntaxe peut déconner g suis sous un poste sous win pour l instant

Reply

Marsh Posté le 30-07-2002 à 20:40:10    

J'avais pas vu !
 
Je repose ma question alors, comment creer dans un script, un user avec son mot de passe ?


---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 30-07-2002 à 21:13:40    

Ho he ho he matelooooooooot
Toi qui navigue sur les floooooots !
Ho he ho he matelooooooooot
 
 
 
Ultimatum : si personne ne m'aide je chante toute la soiree parole de scout :D


---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 30-07-2002 à 23:03:12    

Gaellick a écrit a écrit :

J'avais pas vu !
 
Je repose ma question alors, comment creer dans un script, un user avec son mot de passe ?




 
Siouplait ( puisque vous avez l'air d'apprecier ma voix :D ) !


---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 31-07-2002 à 10:18:04    

$cryptpass=`perl -e 'print crypt('passwd','RR';)'`
 
Tu peux aussi écrire un programme c si tu n'as pas perl, par exemple :
 
#define _XOPEN_SOURCE_
#include <unistd.h>
 
int main(int argc, char *argv[]) {
  if (argc==2)
    printf("%s\n",crypt(argv[1],"RR" ));
  exit(0);
}
 
gcc -o crypt crypt.c -lcrypt

Reply

Marsh Posté le 31-07-2002 à 13:14:53    

ArSuniK a écrit a écrit :

$cryptpass=`perl -e 'print crypt('passwd','RR';)'`
 
Tu peux aussi écrire un programme c si tu n'as pas perl, par exemple :
 
#define _XOPEN_SOURCE_
#include <unistd.h>
 
int main(int argc, char *argv[]) {
  if (argc==2)
    printf("%s\n",crypt(argv[1],"RR" ));
  exit(0);
}
 
gcc -o crypt crypt.c -lcrypt
 




 
Merci beaucoup je vais essayer ca !


---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 31-07-2002 à 13:38:08    

ArSuniK a écrit a écrit :

$cryptpass=`perl -e 'print crypt('passwd','RR';)'`
Tu peux aussi écrire un programme c si tu n'as pas perl, par exemple :
 
#define _XOPEN_SOURCE_
#include <unistd.h>
 
int main(int argc, char *argv[]) {
  if (argc==2)
    printf("%s\n",crypt(argv[1],"RR" ));
  exit(0);
}
 
gcc -o crypt crypt.c -lcrypt
 




 
 
Super ca marche (sans le $ devant cryptpass ;) ) Merci !!


---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 31-07-2002 à 14:18:54    

Juste une derniere petite question, le 'RR' tu l'as choisi au hasard ou bien tu savais qu'il fallait ca comme 2eme parametre a la fonction crypt() ?


Message édité par Gaellick le 31-07-2002 à 14:19:14

---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 31-07-2002 à 18:24:13    

Gaellick a écrit a écrit :

Juste une derniere petite question, le 'RR' tu l'as choisi au hasard ou bien tu savais qu'il fallait ca comme 2eme parametre a la fonction crypt() ?




 
Regarde dans ton fichier /etc/shadow les 2 premières lettres de chaque mot de passe crypté.

Reply

Marsh Posté le 31-07-2002 à 18:44:08    

C'est pas 'RR' mais ca marche quand meme, parcontre pour le dernier user cree avec la fonction j'ai bien 'RR'


---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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