Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > [HELP!] a doubt about entering password in python

Reply
Thread Tools

[HELP!] a doubt about entering password in python

 
 
douxin
Guest
Posts: n/a
 
      01-18-2013
Hi all:

i have some doubts in doing python programming

i wanted to execute a command "su -c 'fdisk -l'",and it needed a
password
so i wanted to write a python script to get this done.

i knew 'pexpect' would work fine,but i had to set a certain timeout
to take care of the real delay time which i probably didn't know

i tried to use 'subprocess' to do this,however,it did not work
well,and came the problem

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?
i'll appreciate i can learn from you

Dou


 
Reply With Quote
 
 
 
 
Steven D'Aprano
Guest
Posts: n/a
 
      01-18-2013
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.

Thank you.


--
Steven
 
Reply With Quote
 
 
 
 
MRAB
Guest
Posts: n/a
 
      01-18-2013
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.
 
Reply With Quote
 
Ramchandra Apte
Guest
Posts: n/a
 
      01-18-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.
 
Reply With Quote
 
Ramchandra Apte
Guest
Posts: n/a
 
      01-18-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.
 
Reply With Quote
 
Chris Angelico
Guest
Posts: n/a
 
      01-18-2013
On Fri, Jan 18, 2013 at 3:45 PM, Ramchandra Apte <(E-Mail Removed)> wrote:
> I think you are correct - su uses some tty magic to stop ECHO and probably doesn't read the password from stdin.


I believe that's right, but the 'sudo' command - at least on my Debian
and Ubuntu systems - accepts a -S parameter to read from stdin instead
of the terminal. Actually, sudo might be better suited to the OP's
task anyway, if it's available.

ChrisA
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Entering password in shell Eric C. Ruby 2 12-05-2010 04:22 AM
Entering username & password automatically using urllib.urlopen rodrigo Python 3 10-15-2007 03:33 AM
Password - How to avoid entering? John Brown Computer Support 5 07-11-2006 10:16 AM
Password entering system Tuvas Python 4 03-10-2006 02:42 PM
entering Password (a String) without leaving in-memory traces otf Java 5 11-29-2005 06:11 PM



Advertisments