satels@gmail.com
Окт. 12, 2009 09:51:00
ArRnorets
Ноя. 23, 2009 15:08:59
Всем привет. Растолкуйте, плз, такой момент: можно ли посредством функции exec_command модуля paramiko выполнить sudo на удаленной системе? Аутентификация происходит с помощью комбинации логин/пароль, пароль требуется ввести с клавиатуры. Не могу догнать, каким образом после такой команды:
….
stdin, stdour,stderr = s.exec_command('sudo -s -u someuser')
….
подсунуть пароль от пользователя someuser, чтобы прямо в скрипте выполнить команду из-под другого пользователя. Спасибо.
avdoshkin
Ноя. 23, 2009 15:19:26
1)
import subprocess
subprocess.call()
2)
import paramiko
password= ‘fdfdfd’
hostname = ‘10.0.0.2’
port = 22
username = ‘root’
if __name__ == ‘__main__’:
paramiko.util.log_to_file('paramiko.log')
s = paramiko.SSHClient()
s.load_system_host_keys()
s.connect(hostname, port, username, password )
stdin, stdout, stderr = s.exec_command('ifconfig')
print stdout.read()
s.close()
ArRnorets
Ноя. 28, 2009 23:30:02
Так как раз в этом-то и загвоздка: прав root'а на удаленном сервере у меня нет. Отсюда и вопрос. При запуске скрипта, содержащего команду:
stdin, stdout, stderr = s.exec_command('sudo -s -u someuser') он останавливается, ожидая повторного ввода пароля от моего пользователя. А вот как его ввести - не возьму в толк.
Спасибо.
sypper-pit
Ноя. 29, 2009 01:55:18
скорее всего настройка sudo требует вторичного ввода пароля…