[Python-es] Expect contra smbpasswd
Chema Cortés
chemacortes en wanadoo.es
Lun Ago 26 01:52:31 CEST 2002
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
El Dom 25 Ago 2002 23:39, Miguel Ángel Vilela escribió:
> Estoy intentando cambiar la clave Samba de un usuario (desde root) con
> el módulo de Expect para Python, pero no me funciona. El código que
> estoy usando es de un ejemplo que trae el paquete python-expect de
> Debian (uso SID):
>
> ----- autopasswd.py -----------------------
> import sys, time, string
> from expect import *
>
> f = popen2 ("passwd usuario", "p")
> f.read ("word: ")
> time.sleep (0.1)
> f.write ("unaclave\n")
> f.read ("word: ")
> time.sleep (0.1)
> f.write ("unaclave\n")
> print string.strip (f.read ())
> ---------------------------------------------
>
> Lo único que he cambiado es el comando ejecutado en la tubería, en
> lugar de passwd he puesto smbpasswd, pero parece que no se deja. El
> caso es que se traba la primera llamada al read() Probándolo en el
>
> intérprete se queda indefinidamente en espera:
> >>> import expect
> >>> fd = expect.popen2 ('smbpasswd', 'p')
> >>> fd.read ()
>
> (aquí se queda hasta que corto con Control-C)
>
> ¿Qué estoy haciendo mal? Una luz, porfa...
No tengo el expect para hacer la prueba (justo en este momento está cerrado
sourceforge). Aún así he leido la documentación, y a parte de cambiar el
comando, también has cambiado la llamada a f.read():
f.read ()
* If no arguments are passed, then this reads as much data as is
outputted by the process, blocking until it reads nothing
(i.e. the process has exited).
f.read (string)
* If a single string is passed, then read() reads up to and
including the matching string.
Tu llamada f.read() está leyendo hasta que acabe el proceso (smbpasswd). Como
a su vez smbpasswd está esperando a que tú le introduzcas un password, ambos
procesos esperarán indefinidamente. Está documentado como "error de libro" en
el uso del popen2. LLama a f.read con argumento: eg: f.read("word: ").
Saludos,
- --
Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0
ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien
PYTANDO http://pytando.sf.net | se contenta con lo que sabe"
PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE9aW2/HLTQrABk8H0RAgd8AJ9UG6a3a9MpOdoF1Qw61xiD46+UZACgtsh3
sHbhd+dfkgFDfMm2SSyV0vU=
=XTEm
-----END PGP SIGNATURE-----
Más información sobre la lista de distribución Python-es