[HELP!] a doubt about entering password in python

Ramchandra Apte maniandram01 at gmail.com
Thu Jan 17 23:45:57 EST 2013


On Friday, January 18, 2013 9:30:29 AM UTC+5:30, MRAB wrote:
> On 2013-01-18 03:12, Steven D'Aprano wrote:
> 
> > On Fri, 18 Jan 2013 10:49:30 +0800, douxin wrote:
> 
> >
> 
> >>     i use Popen to execute "su -c 'fdisk -l'" in sub process,and
> 
> >>     assigned subprocess.PIPE to stdin,stdout i tried to enter password
> 
> >>     by doing "stdin.write("password"+"\n")" and i expected i could get
> 
> >>     the output of "fdisk -l" by doing "stdout.read()"
> 
> >>     it didn't work.
> 
> >>
> 
> >>     will somebody tell me what is going on with that?
> 
> >
> 
> > Would you like us to guess what happened? I love guessing games!
> 
> >
> 
> > My guess is that it output "su: incorrect password", which means you have
> 
> > the wrong password. Is that it?
> 
> >
> 
> > If not, my guess is that it output "fdisk: command not found", in which
> 
> > case your system is broken and the fdisk binary is missing or not on the
> 
> > PATH. Am I close?
> 
> >
> 
> > Last guess: you got a Python traceback with an error:
> 
> >
> 
> > NameError: name 'subprocess' is not defined
> 
> >
> 
> > You need to import the subprocess first.
> 
> >
> 
> >
> 
> > If none of my guesses are correct, could we have some hints? Perhaps show
> 
> > us the actual code you are using, and the actual results, copied and
> 
> > pasted exactly.
> 
> >
> 
> It may, of course, be that for security reasons it won't accept a 
> 
> password from
> 
> whatever happens to be connected to stdin, but instead insists that it's 
> 
> entered
> 
> directly from the keyboard, if you see what I mean.

I think you are correct - su uses some tty magic to stop ECHO and probably doesn't read the password from stdin.



More information about the Python-list mailing list