【问题标题】:fabric: connect to remote server, then execute commands after sudo su - user2fabric:连接到远程服务器,然后在 sudo su - user2 之后执行命令
【发布时间】:2023-08-18 00:20:01
【问题描述】:

我需要编写一个python脚本,它必须能够连接到远程服务器(到user1),执行一些命令(这​​很容易),然后它必须通过sudo su - user2切换到user2,并执行一些命令(问题就在这里)。 如何在不询问密码的情况下切换到 user2(我可以将密码放在脚本中的某处),并以 user2 身份执行命令。

谢谢,

【问题讨论】:

  • 旁白:为什么是“sudo su - user2”?为什么不是“sudo -u user2 -s”?
  • 因为我不知道 sudo -u user2 -s :)。无论如何,我试过了:sudo('su -u user2 -s') user user1 is not allowed to execute '/bin/bash -l -c su -u user2 -s' as root on new_hub。

标签: python ssh fabric


【解决方案1】:

试试-S(大写“S”)。引用 sudo 手册页:

  -S          The -S (stdin) option causes sudo to read the password from
               the standard input instead of the terminal device.

【讨论】:

  • 知道了。只有我作为超级用户被允许做的是 sudo su - user2,如果我尝试 sudo 它不会通过。并且做 sudo('su - user2') 将尝试执行这个 sudo -S -p 这对我来说是不可能的。织物在某些方面不够具体:)
最近更新 更多