【问题标题】:How to run sudo su with paramiko? [duplicate]如何使用 paramiko 运行 sudo su? [复制]
【发布时间】:2019-04-11 13:51:24
【问题描述】:

我想通过 root 用户执行命令。首先,我需要执行命令“sudo su”,然后在特定会话中执行其他命令,例如 docker pull、git clone 等。我想通过使用 paramiko 找出最有效的方法。

【问题讨论】:

  • 为什么不用 ssh 作为 root 用户?
  • 我无法使用 root 用户登录,因为 AWS 中有基础 AMI 的配置。我从 AMI 启动实例,然后连接到实例并进行配置。在我连接“centos”后,我应该切换到 root 用户以提供实例。
  • 您是否能够配置 sudo 以添加您的用户权限以执行您需要的所有命令?你可以使用 sudo 执行每个命令,如下所示:client.exec_command('sudo docker pull')

标签: python paramiko


【解决方案1】:

我知道这并不理想,但如果你有一系列命令要通过 sudo 执行,你可以将它们作为 sudo bash -c "command1; command2" 运行:

In [11]: stdin, stdout, stderr = client.exec_command('sudo bash -c "id; id"')

In [12]: stdout.read().splitlines()
Out[12]:
[b'uid=0(root) gid=0(root) groups=0(root)',
 b'uid=0(root) gid=0(root) groups=0(root)']

【讨论】:

    最近更新 更多