Fabric: подключитесь к машине с одним пользователем, затем сделайте что-то с другим

В настоящее время я пытаюсь сделать следующее с помощью Fabric :

  1. запустить команду «whoami» от имени пользователя «user1» на хосте
  2. запустить команду «whoami» от имени пользователя «user2» на хосте

Соответствующие команды Баха:

$ ssh user1@host
  [...enter password...]
$ whoami
$ su - user2
  [...enter password...]
$ whoami

Обратите внимание, что единственным пользователем, которому разрешено подключаться к хосту, является "user1". Я не могу подключиться к своему хосту с помощью user2.

Я попробовал этот код ткани:

def mytask():
    with settings(user='user1', password='p1'):
        run('whoami')
        with settings(user='user2', password='p2'):
            run('whoami')

Но он продолжает спрашивать у меня пароль user2.


person P. M.    schedule 07.08.2012    source источник


Ответы (2)


Fabric может sudo пользователю, отличному от root:

def mytask():
with settings(user='user1', password='p1'):
    run('whoami')
    sudo('whoami', user="user2")
person mechmind    schedule 14.10.2012

person    schedule
comment
Это не сработало, как ожидалось. Он запрашивает пароль пользователя 2, затем переключается в интерактивный режим, вторая команда whoami не запускается. - person P. M.; 07.08.2012
comment
Он продолжает спрашивать пароль user2. (кстати, я уверен, что пароль правильный) - person P. M.; 07.08.2012