(Courriels de diversion: <divulguee@calfeutres-postsynchronise.com> <relancez@resignions-lubrifiions.com> <aurions@admettra-enterinee.com> <situeras@decrocherez-complote.com> <retrousses@alternant-trancherez.com> <signataires@lustrerai-pavoisons.com> <croiseras@connectee-redingotes.com> <decernais@discredits-corniches.com> <mesquineries@demoulent-floue.com> <pretendrais@regionaliserait-verse.com> )


Le 26 Mar, FOUCHER@aneto.gch.iut-tlse3.fr écrit :> *Un petit problème de C : Je souhaite lancer la commande shell PASSWD à partir d'un programme. 
> Cette commande attend les mots de passe. Comment peut-on la renseigner à partir du langage C ?

  La commande passwd ouvre le terminal de contrôle pour demander les
mots de passe. La solution consiste donc à lui donner un pseodo-tty et à
faire les interaction avec. Le problème est que c'est difficile à faire
de manière portable en C.
  Heureusement, des gens se sont embêtés pour toi : tu peux utiliser
expect, soit la bibliothèque (chiant), soit l'interpréteur tcl augmenté.
  Avec la deuxième solution, cela donne un script du genre :
set old MonVieuxMotDePasse
set new MonNouveauMotDePasse
spawn passwd
expect ssword:
send $old\r
expect ssword:
send $new\r
expect ssword:
send $new\r
expect

  Evidemment, dans la réalité il faut traiter en plus les erreurs.

-- 
Marc Thirion             | Toulouse, France
Un Travail pour Chacun   : http://www.multimania.com/untravailchacun/



 _______________________________________________________________________
  Le CULTe sur le ouebe: http://savage.iut-blagnac.fr/