我的系统设置为允许某个用户在没有密码提示的情况下运行sudo命令。这已经很好地工作了很长时间。现在我遇到了一个非常不寻常的问题,某些命令提示输入sudo密码。我认为这是因为fabric正在解析输出并决定在远端请求密码。
但实际上,这是错误的!没有密码被请求(我可以使用ssh运行相同的命令,不提示密码)。我至少认为命令ps -ef
是有问题的,我认为是因为正在产生的输出类型。
实际上,命令ps -ef
也显示了结构用于在远端运行此命令的命令,我认为这会使结构混乱。可能认为输出中的sudo
意味着需要密码。这是阻止结构提示输入密码的输出部分:
[aaaa@bbbb:22] out: aaaa 9917 9790 0 15:10 ? 00:00:00 sshd: aaaa@notty
[aaaa@bbbb:22] out: root 9918 9917 0 15:10 ? 00:00:00 sudo -S -p sudo password:
是否可以告诉fabric no解析输出,或者至少不提示输入密码?
答案 0 :(得分:0)
在调用命令之前尝试将shell设置为false。
env.shell = False