Re: cryptage password ds script shell
Le dim 21/07/2002 à 14:12, Romain DEGEZ a écrit : Le dim 21/07/2002 à 13:56, BULLIER a écrit : La question à 10 cents du dimanche après-midi... Je souhaite, dans un script shell créer un compte user avec la cmd adduser. Pour créer le le mot de passe il faut utiliser l'option -p suivi du mdp deja crypté. Or je ne parviens pas à le faire fonctionner... Ex: # adduser -g mail -p password -s /bin/false -e 2002-12-01 -m user1 comment remplacer password par sa valeur cryptée (j'ai essayé -p crypt(password, aZ), mais ça n'a rien donné!). Essaye un truc comme ca : adduser -g mail -p `htpasswd -nb user passwd_en_clair | cut -d: -f2` -s /bin/false blablabla htpasswd kesako ? htpasswd is used to create and update the flat-files used to store usernames and password for basic authenticationof HTTP users. Et par defaut ca utilise crpyt(3), ca tombe bien puisque c'est ce qui t'interesses :) Correctif, (honte sur moi), l'utilisation de cut dans ce cas est plutot risqué puisque si le password généré contient : on risque d'avoir une surprise :) Il faut donc utiliser une autre methode pour parser le resultat de htpasswd. -- DEGEZ Romain -- EPITECH Promo 2006 Administrateur Systemes Reseaux pour SmartJog (Video broadcasting) President de Cycom l'assocation de jeux en reseau de l'EPITA/EPITECH Debian GNU/Linux user -- UIN: 10806422 -- mail: [EMAIL PROTECTED] GPG Fingerprint : FD0B AF56 EDC1 98ED 95B9 636F B5D2 4CAB 0B36 3FE2 signature.asc Description: PGP signature
Re: cryptage password ds script shell
--- Original Message --- On 21 Jul 2002 14:20:12 +0200 Romain DEGEZ [EMAIL PROTECTED] (Romain DEGEZ) wrote: BEGIN | adduser -g mail -p `htpasswd -nb user passwd_en_clair | cut -d: -f2` | -s /bin/false blablabla | | htpasswd kesako ? | | htpasswd is used to create and update the flat-files used to store | usernames and password for basic authenticationof HTTP users. | | Et par defaut ca utilise crpyt(3), ca tombe bien puisque c'est ce qui | t'interesses :) | | Correctif, (honte sur moi), l'utilisation de cut dans ce cas est plutot | risqué puisque si le password généré contient : on risque d'avoir une | surprise :) | Il faut donc utiliser une autre methode pour parser le resultat de | htpasswd. | END il me semble bien que crypt ne te sort jamais de password crypte contenant de caractere ':', donc a mon avis ta technique de cut est ok. -- Samuel Pasquier Mieux vaut viser la perfection et ne pas l'atteindre que viser l'imperfection et l'atteindre GPG FP = D2CB EA63 8E00 F8A9 E6B5 522C 4630 2318 16EA C969 pgphikVZtBJDF.pgp Description: PGP signature
Re: cryptage password ds script shell
Le dim 21/07/2002 à 14:18, Alain Tesio a écrit : On 21 Jul 2002 14:12:38 +0200 Romain DEGEZ [EMAIL PROTECTED] wrote: htpasswd kesako ? htpasswd is used to create and update the flat-files used to store usernames and password for basic authenticationof HTTP users. Ci-joint un script perl qui gère aussi un salt comme demandé par le post initial. Alain Ci-joint la meme chose que je viens de faire en c (pas super elegant mais ca marche) a partir du .pl. a compiler avec : gcc crypt.c -lcrypt -o crypt_passwd -- DEGEZ Romain -- EPITECH Promo 2006 Administrateur Systemes Reseaux pour SmartJog (Video broadcasting) President de Cycom l'assocation de jeux en reseau de l'EPITA/EPITECH Debian GNU/Linux user -- UIN: 10806422 -- mail: [EMAIL PROTECTED] GPG Fingerprint : FD0B AF56 EDC1 98ED 95B9 636F B5D2 4CAB 0B36 3FE2 /* ** crypt.c for crypt_passwd */ #include stdio.h #include stdlib.h #include time.h #define _XOPEN_SOURCE_ #include unistd.h int majormin() { int randletter; srandom(random()); randletter = random() % 26; srandom(random()); if (random() % 2 0) return (randletter+= 65); else return (randletter+= 97); } int main(int ac, char **av) { char salt[3]; if (ac != 2) { printf(usage : %s password\n, av[0]); exit (0); } srandom(time(0)); srandom(random()); salt[0] = majormin(); salt[1] = majormin(); salt[2] = '\0'; printf(%s\n, crypt(av[1], salt)); return (0); } signature.asc Description: PGP signature
Re: cryptage password ds script shell
Merci à alain et à romain pour leur réponses précise et efficace (je ne suis pas le seul à travailler le dimanche après-midi)! Après quelques tests, il semble que samuel ait raison et que crypt ne sorte jamais de chaine contenant :. Aussi, je vais utiliser la fonction htpasswd, elle est plus simple à incorporer dans mon script. Merci à tous! -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: cryptage password ds script shell
Je persiste et je signe: sur ma station à la maison: $man passwd NAME mkpasswd - generate new password, optionally apply it to a user SYNOPSIS mkpasswd [ args ] [ user ] INTRODUCTION mkpasswd generates passwords and can apply them automatically to users. mkpasswd is based on the code from Chapter 23 of the O'Reilly book Explor ing Expect. $ mkpasswd m0rw4YTfu $mkpasswd mypass passwd: Only root can specify a username CQFD... Mon serveur ne renvoi rien (j'ai installé au plus juste): $ man mkpasswd Aucune entrée de manuel pour mkpasswd -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: cryptage password ds script shell
Le dim 21/07/2002 à 16:22, Eric Leclercq a écrit : Autant utiliser 'mkpasswd' (dans le package 'whois') qui est un «Overfeatured front end to crypt(3)» :) J'utilise ce script pour créer des utilisateurs : 8--- #! /bin/sh # 2001-11 CHiPs # créer les utilisateurs à partir d'un fichier # ne pouvait malheureusement pas mettre les mots de passe # car le passwd de la potato ne comprend pas l'option --stdin # (corrigé avec l'utilisation de chpasswd) # ne contient pas les groupes auxquels appartiennent les utilisateurs # le fichier d'entrée est sous la forme : # login passalias mailgecos # tototititata[EMAIL PROTECTED] Toto Larico # mettre - pour l'alias de mail (surnom) s'il n'y en a pas # pour mettre dans /etc/aliases echo # alias utilisateurs alias.txt # pour créer effectivement les comptes echo #! /bin/sh users.sh # pour mettre en place les .forward echo #! /bin/sh forwards.sh # pour affecter les mots de passe automatiquement rm -f passwd.txt touch passwd.txt chmod 600 passwd.txt while read login pass alias mail gecos do echo users.sh echo $login,$pass,$alias,$mail,$name echo adduser --disabled-password --gecos \$gecos\ $login users.sh # ne fonctionne pas, il faudrait pouvoir utiliser passwd --stdin #echo cat pass/$login | passwd $login echo $login:$pass passwd.txt echo su - $login -c \echo $mail \ ~$login/.forward\ forwards.sh if expr $alias != '-' /dev/null ; then echo il y a un alias pour $login qui est $alias. echo $alias:$login alias.txt fi done echo users.sh echo chpasswd passwd.txt users.sh 8--- Ce qui est intéressant, c'est : le « --disabled-password » pour créer le compte sans possibilité de login au départ, la commande chpasswd qui évite que le mot de passe se balade en clair en tant qu'argument de ligne de commande et qui crypte la chose comme il faut... Pour ne créer qu'un utilisateur à la fois, on doit pouvoir faire un truc du style « echo 'login:passwd' | chpasswd ». C'est fait sur une bonne vieille patate et « chpasswd » vient du paquet « passwd » qui fait partie de la section « base », donc il n'est guère facile de ne pas en disposer ! Autrement, avec Woody, peut-être que « passwd » comprend l'option qui va bien : « --stdin » ? Hop ! -- Christophe «CHiPs» PETIT [EMAIL PROTECTED] http://chips.free.fr/ Linux-Nantes: partagez votre savoir http://www.linux-nantes.fr.eu.org/ Debian: When Code Matters More Than Commercials http://www.debian.org/ [E=mc2 Albert Enstein.] -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]