0

我最近被介绍到织物并试图解决以下问题:

  1. 访问远程主机
  2. 苏根
  3. 执行命令,例如更改多个用户的密码
  4. 完毕! 请注意,我不能使用 sudo,也不能使用 root 直接连接到远程主机。我需要执行的命令只有在我明确将用户更改为 root 时才能执行。

我能够使用结构接近到达远程主机并使用一些命令的主要概念,但我遇到的问题是,一旦我切换到 root “su root”,除非我退出,否则我无法执行其余命令.

我试图接近的例子:

def mytask():
    with settings(user="root"):
        run('whoami')
        run('echo "TEST using root user"')
        run('echo "ITS WORKING!!!"')

或类似的东西

def mytask():
    run ('su root')
    run ('passwd testUser')

在这两种情况下,一旦我输入了 root 密码,就不会执行任何操作,除非我退出回原始用户,否则我会恢复远程命令行。我很少看到关于使用“fexpect”作为提示的建议,但不确定这是否会有所作为。

我正在Linux环境中开发。

4

1 回答 1

1

您必须使用 fexpect 和 fexpect 运行命令

from ilogue import fexpect

prompt = ['Password', 'mypassword']  # ('prompt', 'answer') Case sensitive

def test():
    with fexpect.expecting(prompt):
        fexpect.local("su -")
于 2015-10-14T07:26:01.500 回答