小编sha*_*gal的帖子

使用fabric切换到不同的用户

我最近开始研究用于远程部署的结构.我需要切换到diff用户(从我登录的用户),我无法弄明白.甚至是可能的,如果是这样的话怎么样?我当前的用户没有sudo权限.

我尝试更改以下环境变量

env.sudo_prefix = "su newUser -c "
env.sudo_prompt = "Password:"
Run Code Online (Sandbox Code Playgroud)

但是Fabric不会等待'newUser'的密码输入而失败.

out: Password: 
[oldUser@ec2-111-11-111-111.compute-1.amazonaws.com] out: su: incorrect password

Fatal error: sudo() received nonzero return code 1 while executing!

Requested: touch x
Executed: su newUser -c  -u "root"  /bin/bash -l -c "cd /home/oldUser/upgrade && touch x"

Aborting.
Disconnecting from oldUser@ec2-111-11-111-111.compute-1.amazonaws.com... done.
Run Code Online (Sandbox Code Playgroud)

更新:

正如JF Sebastian建议的那样,su newUser -c但它会为每个服务器的每个命令提示密码,这会破坏自动化的目的.Fabric中是否有任何方法可以根据提示传递相同的值(在这种情况下,它始终是Password:)

python deployment fabric

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

deployment ×1

fabric ×1

python ×1