gpt4 book ai didi

linux - fabric -- 切换用户后无法运行命令

转载 作者:太空宇宙 更新时间:2023-11-04 10:46:14 25 4
gpt4 key购买 nike

我最近接触到了 fabric,并尝试着手解决以下问题:

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

我能够使用 fabric 接近到达远程主机并使用一些命令的主要概念,但我遇到的问题是一旦我切换到根“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 环境中进行开发。

最佳答案

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

from ilogue import fexpect

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

def test():
with fexpect.expecting(prompt):
fexpect.local("su -")

关于linux - fabric -- 切换用户后无法运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32998768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com