Bonjour,
Voilà je suis face à un petit problème sous AIX, en effet je dois développer un script qui permet de créer automatiquement plusieurs utilisateurs à partir d'un fichier, la création ne me pose aucun problème, mais le problème est l'affectation de mot de passe en mode batch.
En effet la commande passwd d'AIX ne sait pas (encore ?) lire l'entrée standard et ne travaille qu'en intéractif, du coup c'est difficile de scripter cela et je n'ai aucune envie de taper les mots de passe à la main vous vous en doutez :-)
J'ai trouvé comment faire, en fait avec Perl (mais aussi en C), on peut utiliser la fonction "crypt" qui permet de générer un mot de passe crypté en DES à partir d'une chaine de caractère et d'un grain de sel (en fait c'est une clé), du coup il suffit ensuite de formater ça correctement pour alimenter /etc/security/passwd.
J'ai donc déjà une piste mais c'est plus ou moins une bidouille, et d'après mes recherches avec google je ne suis pas le seul dans ce cas là.
Je poste donc un message ici pour savoir si d'autres personnes ont déjà été confrontées à ce problème et comment l'ont-elles résolu avec si possible une méthode système "standard".
Merci
# chpasswd ?
Posté par Cereal Killer . Évalué à 3.
Un brève recherche sur google et/ou google-groups devrais te le confirmer.
voilà comment j'utilisais ça sous linux :
En esperant que ça aide.
[^] # Re: chpasswd ?
Posté par LeSeb (site web personnel) . Évalué à 1.
A la lecture de la page de man (http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.(...) il semble qu'elle ait le même comportement que la traditionnelle commande passwd lancée par root, à savoir qu'elle zappe le contrôle de validité du mot de passe saisi pour l'utilisateur.
Bref, c'est efficace pour de la création de comptes en masse, nettement moins pour du changement de mot de passe par l'utilisateur lui-même en ligne de commande (à travers une IHM web, au hasard).
En terme de sécurité c'est pas tip-top de l'utiliser à travers un echo, il vaut mieux passer par un fichier intermédiaire sécurisé.
Sinon pour le reste, ça devrait effectivement répondre aux besoins de Laurent ...
[^] # Re: chpasswd ?
Posté par Dabowl_92 . Évalué à 1.
Et effectivement, elle permet de faire ce que je veux, à savoir de d'affecter un mot de passe pour chaque utilisateur depuis un fichier, on peut même stocker le mot de passe en crypté dans le fichier d'import.
Du coup je peux employer cette commande pour certaines machines c'est déjà ça :-)
Merci
[^] # Re: chpasswd ?
Posté par LeSeb (site web personnel) . Évalué à 1.
Je sais que ça fonctionne dans le sens ascendant (exécutable compilé sur un système en 5.1 et utilisé sur un système en 5.2).
Je n'ai jamais essayé dans le sens descendant, mais ça vaut le coup d'essayer ...
[^] # Re: chpasswd ?
Posté par Dabowl_92 . Évalué à 2.
Et bien je vais essayer ça ne mange pas de pain...
Mais si je casse la machine je peux porter plainte contre toi ? ==>[]
[^] # Re: chpasswd ?
Posté par Dabowl_92 . Évalué à 2.
A vrai dire j'ai préféré ne pas essayer de copier un binaire compilé aix 5.2 pour l'utiliser sur aix 5.1
J'ai contacté les différents support (ibm, et bull)
Bull me donne une proc ibm qui consiste à faire des copies de fichiers, en gros c'est une migration de comptes, ça ne répond pas du tout à mon besoin
IBM me dit d'aller downloader un package bull, sur le site www.bullfreeware.com, aix-tools, ce package contient la commande "chpass" et elle permet donc d'affecter un mot de passe fournit directement en paramètres MAIS cela ne marche que si l'utilisateur dispose déjà d'un mot de passe, sinon la commande fait un joli core dump....
Bref, j'ai sollicité la terre entière pour finalement opter pour ma solution initiale, qui est de faire des append dans le fichier /etc/security/passwd avec perl, je n'ai pas besoin de le modifier car je ne fais que créer des comptes....et j'ai testé à la main cette solution et ça marche...donc il va falloir que je me lance :-)
Merci pour votre aide !
[^] # Re: chpasswd ?
Posté par Cereal Killer . Évalué à 0.
Une question surement très conne : Pourquoi ne pas prendre les sources de chpasswd , qui se trouve (sur ma debian en tout cas) dans le paquet passwd et recompiler tout ça sur ton AIX 5.1 ?
Ne connaissant pas du tout le monde des unix proprietaire, j'ai aucune idée de la faisabilité de la chose, mais je pense que c'est ce que j'aurais fait ou au moin essayé de faire.
Sinon, si dans le pire des cas, si la seule solution restante est la tienne, je te propose de release ton petit script perl au cas où d'autres se retrouverait confronter au problème un jour.
[^] # Re: chpasswd ?
Posté par LeSeb (site web personnel) . Évalué à 2.
En ce qui concerne la faisabilité, après examen rapide du code source de la commande chpasswd fournie sous Debian (base/passwd), je doute qu'elle puisse fonctionner sous AIX, ne serait-ce que parceque le fichier /etc/shadow n'y existe pas en tant que tel, et que le fichier /etc/security/passwd qui le "remplace" n'est pas structuré de la même façon que sous Linux.
La commande chpasswd fournie depuis AIX 5.3 est très certainement une version maison de la commande, et franchement, ça m'étonnerait qu'IBM lui donne accès à son code source ...
[^] # Re: chpasswd ?
Posté par LeSeb (site web personnel) . Évalué à 2.
Ceux qui suivent auront corrigé d'eux même, la commande est apparue avec la version 5.2 d'AIX ...
# Va faire un tour sur http://aixfr.org
Posté par LeSeb (site web personnel) . Évalué à 3.
Derrière ton problème, il s'en cache plusieurs autres :
- modifier manuellement /etc/security/passwd c'est pas bô (et risqué)
- tes mises à jours ne seront pas intégrées aux bases de sécurité d'AIX (j'entends par là : pas de contrôle de validité des mots de passe utilisés, ni de leur réutilisation)
Normalement, la seule solution acceptable (i.e. qui permet de garantir l'intégrité du système), c'est de passer par les appels système C.
Evidemment c'est pas du tout cuit, surtout si tu ne développes pas en C ...
Si tu veux tenter l'aventure par tes propres moyens, ces appels système seront tes amis une fois domptés (plus ou moins dans le désordre) :
- setuserdb(), enduserdb()
- setpwdb() , endpwdb()
- crypt(), putuserpw(), putuserpwhist()
Pour la doc associée, ça se passe là : http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.(...)
J'ai pas les billes sous la main tout de suite là maintenant, mais si tu me le demandes gentiment, je pourrai te fournir le code source de quelques programmes que j'ai écrit afin de permettre la modification du mot de passe d'un compte à partir de la ligne de commande ou du contenu d'un fichier (plus sécurisé), et de manipuler la base d'historique des mots de passe d'AIX.
[^] # Re: Va faire un tour sur http://aixfr.org
Posté par Dabowl_92 . Évalué à 1.
Oui, j'avais déjà vu qu'en C on avait les fonctions qu'il fallait, mais malheureusement je ne dispose pas de compilateurs sur mes machines de production, et je ne peux pas en installer car il faudrait que je fasse une demande au service de déploiement etc...bref, je pense que tu as saisis :-)
J'avais commencé par faire un truc en Perl et comme je déclare de nouveaux utilisateurs, je peux mettre en "append" mes comptes dans /etc/security/passwd...et le cryptage que je génère est bien le même que celui du système, le timestamp est bon etc... et puis il s'agit ici d'affecter un mot de passe par défaut pour chaque utilisateur, lors de leur première connexion ils doivent le changer et ils doivent respecter la politique interne de gestion de mot de passe (longueur etc..)
Modifier à la main /etc/security/passwd c'est pas bo et risqué, entièrement d'accord avec toi mais si c'est la seule voie...
En tout cas merci :-)
# Importer des utilisateurs ?
Posté par Ellendhel (site web personnel) . Évalué à 2.
How do I import an /etc/passwd or /etc/group file from another box?
If the other box is non-AIX, copy the password and group entries for
the non-system users into AIX's /etc/passwd and /etc/group files.
Then run /bin/pwdck -t ALL. This will create the proper entries in
the shadow password file (/etc/security/users). You should also run
usrck and grpck.
http://www.faqs.org/faqs/aix-faq/part1/section-13.html
# Commentaire supprimé
Posté par Anonyme . Évalué à 3.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Expect
Posté par Dabowl_92 . Évalué à 2.
J'ai pris différents renseignements notamment auprès du support IBM, il existe une procédure qui consiste à faire des copies de fichiers :-/
En gros avant AIX 5.2, il faut faire un outil maison ou se palucher les mots de passe à la main...
[^] # Re: Expect
Posté par LeSeb (site web personnel) . Évalué à 1.
C'est un truc que j'avais déjà utilisé à plusieurs occasions, avec succès, mais il semble que la commande passwd d'AIX blinde - je ne sais pas trop comment - ses descripteurs STDIN et STDOUT, m'empêchant d'utiliser la même ruse ... :-(
Bref, j'ai fini par me remettre au C après 8 ans sans en avoir touché une ligne ...
Pour apprendre 6 mois plus tard qu'il existait une commande chpasswd qui faisait une grosse partie du boulot ! :-(
Nan, sérieux, je bosse avec des vrais gars de chez IBM, formés AIX 5.2 et toussa, eh bien je leur ai appris l'existence de cette commande aujourd'hui !
Il va bientôt falloir qu'ils viennent sur linuxfr.org pour apprendre des trucs sur AIX, héhé ... :-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.