[Python] Question de débutant, entrée stdin dans un script

Question de débutant, entrée stdin dans un script [Python] - Python - Programmation

Marsh Posté le 11-07-2005 à 14:42:00    

Bonjour :)
 
C'est mon premier post sur ce forum, donc soyez pas trop méchant avec moi...
 
Ma question est toute bete, sauf que malgré quelques questions a droite et a gauche a des copains, et du google en passant, je n ai pas trouvé une réponse a ma question.
 
Je cherche a faire un script qui permet une sychronisation de mot de passe entre divers services, sur la meme machine au départ.
 
Sauf que voila, mon script python appelle des fonctions genre 'passwd', 'pdbedit', qui réclament une saisie, puis confirmation, d un mot de passe. En clair, j ai un prompt a chaque fois.
 
Y a t il un moyen de rediriger un argument préalablement établi (une chaine par exemple) directement dans un stdin? J utilise le module os, et j execute les commandes via la méthode system, mais j ai pas trouvé comment faire pour retourner un argument a chaque prompt.
 
Si vous pouviez me dire quelle genre de fonction fait ca, et si c est possible au moins (j imagine que oui quand meme...)
 
Par avance, merci  :hello:

Reply

Marsh Posté le 11-07-2005 à 14:42:00   

Reply

Marsh Posté le 12-07-2005 à 11:11:34    

Personne ne sait?  :(  
 
Y a vraiment pas moyen de faire remplir des champs automatiquement par un script quand j appelle une commande genre os.system('passwd') ?  :sweat:

Reply

Marsh Posté le 12-07-2005 à 12:22:22    

c'est normal, la plus part des utilitaires de changements de mots de passe préviennent ce genre de trucs.
 
regarde chpasswd c'est plus simple à utiliser.
 
 
Après y a pas de miracle : tu veux apprendre à programmer, tu vas dans les bibliolinks python et t'apprends. Garde de toi de faire quoi ce que soit en root et de toucher à des trucs importants pendant que tu apprends, sinon tu va flinguer ton système.

Reply

Marsh Posté le 12-07-2005 à 12:56:54    

Merci pour ta réponse :)
 
En fait passwd n était qu un exemple, c était surtout pour bien faire comprendre ma question.
 
Ok, je vais faire autrement alors. Merci pour ton aide  :jap:

Reply

Marsh Posté le 12-07-2005 à 14:25:15    

Pour passwd, c est vrai que c est galere. Surtout si tu n as pas chpasswd a dispo.
 
Pour de la creation de compte (je gere une ptite salle info d eleves, donc a priori je suis loin d avoir des conseils de pros), j utilise useradd, avec l option comme ca (aux erreurs de syntaxe pres, de tete:)
 
passwd = rand_passwd(8)
crypt_passwd = crypt.crypt(passwd,rand_passwd(2))
commande = 'useradd -g %s -G users -m -p %s -s /bin/bash %s' % (gid, crypt_passwd, login)
 
rand_passwd est une fonction du script qui retourne un mot de passe de x caractères, chiffres ou lettres/majuscules, choisies au hasard.
 
C est porc, mais ca marche  [:petrus75]  
 
NB: l option --stdin qui apparait dans la page man francaise pour passwd n existe pas en réalité, ca doit etre du a une vetusté quelconque de la page.
 
Sinon t as plus violent, l edit de /etc/passwd /etc/shadow, a tes risques et périls...
 
Ca bloque si l utilisateur existe deja, ou si tu utilises d autres services. Donc la y a des bidouilles encore, genre:
 
smbpasswd -as "login" < "fichier texte temporaire contenant les mots de passes"
 
Sinon, il te reste le module pexpect:
 
http://pexpect.sourceforge.net/
 
Bonne chance a toi. Le module par contre, je ne l ai jamais testé.
 
Edit: (de scrupule)
 
Vivement déconseillé de tenter ses scripts avec pexpect en root, sinon prepare quelques sauvegardes sur bande avant, t as les moyens de tout casser avec ce truc.


Message édité par Gf4x3443 le 12-07-2005 à 14:39:08
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed