[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