Script : changer mot de passe
Résolu/Fermé
koma_666
Messages postés
429
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
9 mai 2016
-
4 juin 2011 à 16:19
koma_666 Messages postés 429 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 9 mai 2016 - 6 juin 2011 à 21:58
koma_666 Messages postés 429 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 9 mai 2016 - 6 juin 2011 à 21:58
A voir également:
- Script : changer mot de passe
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Microsoft activation script - Accueil - Windows
- Script bat - Guide
- Executeur de script - Télécharger - Édition & Programmation
6 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
Modifié par lami20j le 6/06/2011 à 00:30
Modifié par lami20j le 6/06/2011 à 00:30
Salut,
Voir en gras.
GNU/Linux:Linux is Not Ubuntu! Quel linux choisir ne veut pas dire votre Distribution préférée,
106485010510997108
Voir en gras.
lami20j@debian-acer:~$ cat users.txt 0:admin:admin 1:flo:mdp 2:justin:test 3:test::mot_de_passe lami20j@debian-acer:~$ cat suppr.sh #!/bin/bash listeUsers=$(cat ./users.txt | grep ^[0-9] | cut -d":" -f2) #on choppe la liste des utilisateurs => admin flo justin test echo "quel utilisateur souhaitez-vous supprimer ?" read supprUser while [ 0 == $(echo "$listeUsers" | egrep -c "$supprUser") ] #tant que le nom d'un utilisateur n'est pas tapé correctement, on redemande le nom d'un utilisateur do echo "$listeUsers" echo "utilisateur inexistant. entrer un utilisateur" read supprUser done echo "êtes-vous sûr de vouloir supprimer $supprUser ? (y - n)" read YesOrNo if [ $YesOrNo == "y" ] then sed -i "/^[0-9]\+:${supprUser}/d" ./users.txt #PROBLEME ICI : on supprime les lignes qui contiennent la chaine de caractère "nom d'utilisateur que l'on veut supprimer" else echo "vous avez annulé la suppression" fi lami20j@debian-acer:~$ sh suppr.sh quel utilisateur souhaitez-vous supprimer ? azerty admin flo justin test utilisateur inexistant. entrer un utilisateur test êtes-vous sûr de vouloir supprimer test ? (y - n) n vous avez annulé la suppression lami20j@debian-acer:~$ sh suppr.sh quel utilisateur souhaitez-vous supprimer ? test êtes-vous sûr de vouloir supprimer test ? (y - n) y lami20j@debian-acer:~$ cat users.txt 0:admin:admin 1:flo:mdp 2:justin:test
GNU/Linux:Linux is Not Ubuntu! Quel linux choisir ne veut pas dire votre Distribution préférée,
106485010510997108
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
4 juin 2011 à 16:25
4 juin 2011 à 16:25
Salut,
Au lieu de :
Nul besoin du cat et du grep ;-(
;-))
Au lieu de :
cat ./users.txt | grep $1 | sed -i "s/$mdp/$newmdp/" ./users.txtChange pour :
sed -i "/$1/ s/$mdp/$newmdp/" ./users.txt
Nul besoin du cat et du grep ;-(
;-))
koma_666
Messages postés
429
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
9 mai 2016
34
4 juin 2011 à 16:42
4 juin 2011 à 16:42
Rholala, merci, je t'aime !
A l'origine, je n'avais pas mis le cat et le grep. Vu que ca ne marchait pas, je les ai ajouté pour tester.
Tu peux m'expliquer comment ca fonctionne ? le /$1/ en particulier. c'est une sélection ? ca applique uniquement le changement sur l'argument ?
A l'origine, je n'avais pas mis le cat et le grep. Vu que ca ne marchait pas, je les ai ajouté pour tester.
Tu peux m'expliquer comment ca fonctionne ? le /$1/ en particulier. c'est une sélection ? ca applique uniquement le changement sur l'argument ?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
4 juin 2011 à 17:00
4 juin 2011 à 17:00
Oui, c'est ça. On sélection un motif "/motif/" et on applique les changements qu'aux lignes contenant ce motif ;-)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
4 juin 2011 à 17:12
4 juin 2011 à 17:12
De même pour récupérer le mot de passe, pour éviter tous ces pipes...
;-))
$ cat plop 1:login_user1:mdp_user1 2:login_user2:mdp_user2 3:login_user3:mdp_user3 4:login_user4:mdp_user4 $ set login_user2 $ awk -F':' '$2 ~ /'"$1"'/ { print $3 }' plop mdp_user2
;-))
koma_666
Messages postés
429
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
9 mai 2016
34
4 juin 2011 à 19:09
4 juin 2011 à 19:09
ok, merci beaucoup.
Reste dans le coin, mon projet est loin d'être terminé ;)
Reste dans le coin, mon projet est loin d'être terminé ;)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
5 juin 2011 à 08:05
5 juin 2011 à 08:05
Salut,
je suis en train de faire un script qui permet de changer le mot de passe d'un utilisateur.
Tu parles de mot de passe pour accéder à sa session Linux?
Si oui, alors tes mots de passe dans le fichier sont déjà cryptés?
Si non, alors ça m'étonnerait que ça marche et si c'est le cas alors c'est une grosse faille de sécurité.
je suis en train de faire un script qui permet de changer le mot de passe d'un utilisateur.
Tu parles de mot de passe pour accéder à sa session Linux?
Si oui, alors tes mots de passe dans le fichier sont déjà cryptés?
Si non, alors ça m'étonnerait que ça marche et si c'est le cas alors c'est une grosse faille de sécurité.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
et comment on fait pour que cela fonctionne, on l'ouvre avec quoi ensuite pour pouvoir mettre en oeuvre le nouveau mot de passe?
koma_666
Messages postés
429
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
9 mai 2016
34
5 juin 2011 à 23:56
5 juin 2011 à 23:56
@zipe31 :
nouveau problème :
mon problème est au niveau de la suppression d'un user :
si on supprime un user, si le nom du user sélectionné et le même qu'une autre information d'un autre user, ca supprime les 2 users concernés. un exemple pour illustrer mes propos :
fichiers users.txt (pour rappel : 0:user:mot_de_passe )
0:admin:admin
1:flo:mdp
2:justin:test
3:test::mot_de_passe
=> si je supprime le user qui s'appelle 'test', ca va me le supprimer comme il faut (ici pas de soucis), par contre, ca va me supprimer également la ligne 2, vu que le mot de passe de 'sojustin' est 'test'.
je te copie mon code (avec explications dedans) :
listeUsers='cat ./users.txt | grep ^[0-9] | cut -d":" -f2'
#on choppe la liste des utilisateurs => admin flo justin test
echo "$listeUsers"
echo "quel utilisateur souhaitez-vous supprimer ?"
read supprUser
while [ 0 == 'echo $listeUsers | egrep -c "\<\$supprUser\>"' ]
#tant que le nom d'un utilisateur n'est pas tapé correctement, on redemande le nom d'un utilisateur
do
echo "$listeUsers"
echo "utilisateur inexistant. entrer un utilisateur"
read supprUser
done
echo "êtes-vous sûr de vouloir supprimer $supprUser ? (y - n)"
read YesOrNo
if [ $YesOrNo == "y" ]
then
sed -i "/$supprUser/d" ./users.txt
#PROBLEME ICI : on supprime les lignes qui contiennent la chaine de caractère "nom d'utilisateur que l'on veut supprimer"
else
echo "vous avez annulé la suppression"
fi
;;
t'as une idée ? faudrait faire un masque avec uniquement le f2 (c'est à dire le nom d'utilisateur), mais je sais pas faire.
nouveau problème :
mon problème est au niveau de la suppression d'un user :
si on supprime un user, si le nom du user sélectionné et le même qu'une autre information d'un autre user, ca supprime les 2 users concernés. un exemple pour illustrer mes propos :
fichiers users.txt (pour rappel : 0:user:mot_de_passe )
0:admin:admin
1:flo:mdp
2:justin:test
3:test::mot_de_passe
=> si je supprime le user qui s'appelle 'test', ca va me le supprimer comme il faut (ici pas de soucis), par contre, ca va me supprimer également la ligne 2, vu que le mot de passe de 'sojustin' est 'test'.
je te copie mon code (avec explications dedans) :
listeUsers='cat ./users.txt | grep ^[0-9] | cut -d":" -f2'
#on choppe la liste des utilisateurs => admin flo justin test
echo "$listeUsers"
echo "quel utilisateur souhaitez-vous supprimer ?"
read supprUser
while [ 0 == 'echo $listeUsers | egrep -c "\<\$supprUser\>"' ]
#tant que le nom d'un utilisateur n'est pas tapé correctement, on redemande le nom d'un utilisateur
do
echo "$listeUsers"
echo "utilisateur inexistant. entrer un utilisateur"
read supprUser
done
echo "êtes-vous sûr de vouloir supprimer $supprUser ? (y - n)"
read YesOrNo
if [ $YesOrNo == "y" ]
then
sed -i "/$supprUser/d" ./users.txt
#PROBLEME ICI : on supprime les lignes qui contiennent la chaine de caractère "nom d'utilisateur que l'on veut supprimer"
else
echo "vous avez annulé la suppression"
fi
;;
t'as une idée ? faudrait faire un masque avec uniquement le f2 (c'est à dire le nom d'utilisateur), mais je sais pas faire.
6 juin 2011 à 21:58