В настоящее время я делаю из командной строки следующее:
$ ssh myuser@remote-server
password:
[myuser@remote-server ~]$ sudo su - dev_user
[dev_user@remote-server ~]$ whoami
dev_user
[dev_user@remote-server ~]$
Нет прав доступа.
У myuser достаточно прав для выполнения описанных выше действий, но у него нет прав для sudo su -c whoami dev_user
Я попробовал следующий код
from fabric import Connection, task
@task
def abcd(ctx):
sudo_pass = getpass.getpass("What's your sudo password?")
config = Config(overrides={'sudo': {'password': sudo_pass}})
with Connection('dev-server', user='myuser', connect_kwargs={"password": sudo_pass}, config=config) as c:
c.sudo('/bin/bash -l -c whoami', user='dev_user')
Я получаю следующий вывод:
fab abcd
What's your sudo password?
[sudo] password: Sorry, user myuser is not allowed to execute '/bin/bash -l -c whoami' as dev_user on dev-server.
Есть ли способ заставить ткань делать то, что я делал из командной строки?
Редактирование файла sudoers не вариант.
Удаленным сервером является Linux RH 7.6.
Спасибо.