Votre navigateur est obsolète. Téléchargez un navigateur moderne, par exemple FireFox.
Léa-Linux : Forum
Le forum de Léa abrite des discussions autour des Logiciels libres.
Syndication
  • RSS ForumForum complet
  • RSS Forum - AdministrationForum - Administration
  • RSS Forum - Administration - 93545Cette discussion

Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Important : quand vous posez une question, n'oubliez pas de nous donner les indications suffisantes pour que nous puissions répondre. En effet, la divination n'est pas le fort du Linuxien averti. Pour une meilleure compréhension, le bon usage de la grammaire et de l'orthographe est fortement encouragé. En particulier, le langage SMS est à éviter absolument. En cas d'abus, il pourra être censuré sans autre forme de procès.
Les messages dont le contenu est illégal (incitant à la haine - raciale ou autre, diffamant), ou dont le contenu est sans rapport avec le sujet du forum, ou qui sont parfaitement stupides ou hors sujet seront supprimés sans pitié. Il pourra même être fait appel au fournisseur d'accès du coupable pour faire cesser ses agissements.
» Index du forum » Administration » creation de users automatique : pb pass non crypté dans le shadow
Aller à la discussion: PrécédentSuivante
Action: Nouveau sujetChercherS'authentifier
creation de users automatique : pb pass non crypté dans le shadow
Auteur: xinul (IP enregistrée)
Date: le 30 octobre 2003 à 12:08

bonjour a tous !

[ distro : Slackware 9.1 ]

je viens de faire un script (en bash), qui permet de creer automatiquement des users/pass a partir d'un ficher formaté de la maniere suivante <user> <pass>, fichier de 1000 lignes !!! (donc j'allais pas me creer les users a la main avec adduser, qui m'affiche des prompts... image: clin d`oeil ).

le script est le suivant:

-------------------------------------------------------------------
#!/bin/bash

FILE="xxxxx"
USER="`cat $FILE | cut -d" " -f1`"
PASS="`cat $FILE | cut -d" " -f2`"
USER_HOME="/home/users"

#echo "$USER"
#echo "$PASS"

for I in $USER;
do
echo -n "$I : "
Ipass=`cat $FILE | egrep "^$I" | cut -d" " -f2`
# echo "$Ipass"

mkdir $USER_HOME/$I
echo "useradd -d $USER_HOME/$I -p $Ipass $I"
useradd -d $USER_HOME/$I -p $Ipass $I
chown -R $I.users $USER_HOME/$I
done

----------------------------------------------------------------------

En executant ce script, tout se passe a merveille. Seul petit hic les pass ne sont pas cryptés dans le /etc/shadow. le problem c'est qu'il faudrait passer pour chaque entree de user, la command "passwd", mais celle-ci m'affiche un prompt, ce que je ne veux pas puique je voudrais que ca se fasse directement dans le script....!!!!



Merci d'avance...

image : fou

Re: creation de users automatique : pb pass non crypté dans le shadow
Auteur: Jonesy's (IP enregistrée)
Date: le 30 octobre 2003 à 22:45

Bonsoir,

Voir : man user add, option -p
Il faut passer le mot de passe crypté... Ne reste plus qu'à faire un programme C qui utilise crypt(3) pour crypter le mot de passe ! image: clin d`oeil

@+

Re: creation de users automatique : pb pass non crypté dans le shadow
Auteur: xinul (IP enregistrée)
Date: le 31 octobre 2003 à 14:29

bonjour,

merci pour l'idee du prog en C avec crypt(3), mais en fait j'ai resolu le problem avec un petit script en perl, utilisant le module "Crypt::PasswdMD5", qui est le suivant :


---------------------------------------------------------------------------------------
#!/usr/bin/perl -w

$|=1;

use strict;
use Crypt::PasswdMD5;

my $shadow="/etc/shadow";
my $cnt=0;

print " ---------------------\n Encode shadow for: \n";
open(SHADOW,$shadow) || die "can't read $shadow";
open(SHAD_TMP,">$shadow.tmp") || die "can't read $shadow.tmp";
while (<SHADOW>) {
if ($_ =~ /([^:]+)\:([^:]+)\:(.*)/g && $2 !~ /^\$1\$/ && $2 !~ /^[\*\!]$/) {
my $salt=&gen_salt();
print SHAD_TMP $1.":".unix_md5_crypt($2,$salt).":".$3."\n";
print " - $1:$2\n";
$cnt++;
} else {
print SHAD_TMP $_;
}
}
close(SHADOW);
close(SHAD_TMP);


print " ---------------------\n Nb users encodes : $cnt \n";

exit();


# gen alphanum 2 digits salt
sub gen_salt() {
my $i=1;
my ($salt,$rand);

while ($rand=rand(122)){
$salt.=chr($rand) if chr($rand)=~ /\w+/;
last if ($salt&& length($salt)==2);
$i++;
}
return $salt;
}

---------------------------------------------------------------------------------------------


Donc du coup maintenant j'ai pu le rajouter a la suite de mon script bash, ce qui est nickel....

( evidemment j'aurais du y penser avant ou alros tout faire en perl... je pensais pas avaoir un petit souci de ce genre...)

Voila. En tout cas merci.

image : fou

Re: creation de users automatique : pb pass non crypté dans le shadow
Auteur: Jonesy's (IP enregistrée)
Date: le 31 octobre 2003 à 19:47

Bonsoir,

Mais je t'en prie !
C'est moi qui te remercie pour 2 raisons :
-1- D'avoir apporté une solution compléte ! Pourquoi n'ai pas pensé à Perl !? image: clin d`oeil
-2- D'être poli image: clin d`oeil

@+

Re: creation de users automatique : pb pass non crypté dans le shadow
Auteur: xinul (IP enregistrée)
Date: le 5 novembre 2003 à 16:11

Bonsoir Jonesy's,


Juste pour te preciser, j'ai trouve une command sous la slack (mais on doit la retrouver sous toutes les nouvelles distro) : newusers.
Du coup mon script ce résume a ca (tout compris, new user + encrypt du pass ) image : fou:


-------------------------------------------------------------------------------------------------
#!/bin/bash

FILE=mitch_users.csv

HME="/home/users"
SH="/bin/false"
USR="`cat $FILE | cut -d" " -f1`"
PASS="`cat $FILE | cut -d" " -f2`"

pfile="/etc/passwd"


touch usr_tmp; echo -n > usr_tmp
#echo `cat usr_tmp`
#echo "$USR"
#echo
#echo "$PASS"

for I in $USR;
do
echo -n "$I : "
Ipass=`cat $FILE | egrep "^$I" | cut -d" " -f2`
echo "$Ipass"

echo "useradd -d $HME/$I -s $SH -m -p $Ipass $I"
useradd -d $HME/$I -s $SH -m -p $Ipass $I
echo "Done."
echo

echo `cat $pfile | egrep "$I" | sed 's/:x:/:'$Ipass':/g'` >> usr_tmp

newusers usr_tmp

done


echo "- Removing temporary file : usr_tmp"
rm -rf usr_tmp

echo

-----------------------------------------------------------------------------------------------

EN fait "newusers" est tres pratique, puisqu'il peut creer ou modifier (cf man newusers) des users, sauf qu'il faut l'appliquer sur un fichier de type /etc/passwd, d'ou mon fichier "usr_tmp", qui prend une forme de /etc/passwd masi avec le pass en clair...

Donc voila....
PS : bien entendu tous ceux qui ont une foultitude de users a creer (admins image: clin d`oeil ) peuvent se servir de ce script et le modifier a souhait... image : fou

@++ et merci encore pour les idees...



Nom du forum : (antispam) - (en développement:saisir un texte pour le message, rempli cette zone automatiquement)
Votre nom: 
Votre email: 
Sujet: 

 
Ce forum est boosté par Phorum.