popen2 + passwd
Donn Cave
donn at u.washington.edu
Mon May 15 18:44:05 EDT 2000
More information about the Python-list mailing list
Mon May 15 18:44:05 EDT 2000
- Previous message (by thread): popen2 + passwd
- Next message (by thread): popen2 + passwd
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Jp Calderone <exarkun at flashmail.com> wrote: | Can anyone tell me why this doesn't work? | | import popen2 | | i, o = popen2.popen2('passwd bin') | pwd = '12345ASD' | o.write(pwd + '\n') | o.write(pwd + '\n') | i.close() | o.close() | | Running it through the interpreter yields no output (as it should), | but the password for the bin user doesn't change to what I'd expect | it to (12345ASD), but to something else. Most versions of the "passwd" program will try to turn off echo on their input unit. That's a tty device ioctl(), and a pipe device is not valid for that. When it fails, I would expect the program to abort. I'd expect to see a password prompt, but not the second password prompt. There's a special device, called a pseudo-tty, or pty, to use with applications that need a terminal device. Python's pty module can do that for a few platforms, and there have been "expect" solutions. The real Expect is a widely used Tcl application that uses a pty to interact with an external application. Donn Cave, donn at u.washington.edu
- Previous message (by thread): popen2 + passwd
- Next message (by thread): popen2 + passwd
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list