Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 5, 2009 16:02:28

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Ввод пароля в shell

Как на питоне разрешить ситуацию, когда после ввода команды в shell спрашивается пароль? Это может быть, в частности, sudo или что-то в этом роде. Shell-команды я выполняю в основном с помощью os.popen(). Как передать пароль в shell программно?



Отредактировано (Июнь 5, 2009 16:05:20)

Офлайн

#2 Июнь 5, 2009 18:57:01

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Ввод пароля в shell

Пытаюсь так:

from subprocess import PIPE, Popen
proc = Popen(command, shell=True, stdin=PIPE, stdout=PIPE)
proc.stdin.write(mypass + '\n')
Выдает, что неверный пароль.



Отредактировано (Июнь 5, 2009 18:57:37)

Офлайн

#3 Июнь 5, 2009 20:17:43

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Ввод пароля в shell

Все, разобрался



Офлайн

#4 Июнь 8, 2009 12:08:14

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Ввод пароля в shell

Советую посмотреть еще в сторону pexpect(http://pexpect.sourceforge.net/pexpect.html).



Офлайн

#5 Июнь 8, 2009 19:42:12

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Ввод пароля в shell

описывай что у тебя было и кк ты решил…

Офлайн

#6 Июнь 8, 2009 22:55:34

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Ввод пароля в shell

sypper-pit

from subprocess import Popen, PIPE
proc = Popen(command, shell=True, cwd=self.fullpath, stdin=PIPE, stdout=PIPE)
proc.communicate(mypass)
proc.wait()
А вообще исходники проекта тут, можете глянуть: http://pastebin.mozilla-russia.org/99375



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version