我最近开始研究用于远程部署的结构。我需要切换到差异用户(从我登录时所用的用户),并且无法弄清楚。有可能吗?我当前的用户没有sudo
权限。
我尝试更改以下环境变量
env.sudo_prefix = "su newUser -c "
env.sudo_prompt = "Password:"
但是结构不等待’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.
更新:
正如JF Sebastian所建议的那样,su newUser -c
它可以工作,但它会为每台服务器的每个命令提示密码,这违背了自动化的目的。Fabric中是否有任何方法可以根据提示传递相同的值(在这种情况下,始终为Password:
)
感谢JF Sebastian,有很多收获。
这就是最终要做的事情。它的工作。
pwd = None
@hosts('myhost.com')
def test():
with cd('/home/oldUser/upgrade'):
run('ls') #This is to connect aggressively (instead of lazily)
global pwd #Change the scope of pwd
if pwd is None:
pwd = getpass.getpass('enter password for newUser')
execute(su, pwd, 'newUser', 'touch x')
run ('ls')
execute(su, pwd, 'newUser', 'rm x')
run ('ls')
def su(pwd, user, command):
with settings(
password= "%s" % pwd,
sudo_prefix="su %s -c " % user,
sudo_prompt="Password:"
):
sudo(command)
本节介绍MATLAB中的一些其他数据结构,包括: 多维数组 单元数组 字符与文本 结构体
问题内容: 我有这个bean 我想序列化为 (或作为json) 我应该如何做,最好使用jaxb注释? 我正在使用运动衫,但答案不必特定于它。 问题答案: 接下来呢? 使用EclipseLink JAXB(MOXy),您可以执行以下操作。注意:我是MOXy技术负责人。 测试 领域 SomeValueAdapter 字段适配器 AdaptedField 演示版 导入java.io.File; inpu
现在我和杰克逊一起工作,我有一些问题。 首先。我有两个服务,第一个是数据收集和发送服务,第二个是接收这些数据,例如,将其记录到文件中。 因此,第一个服务具有如下类层次结构: 第二个服务具有如下类层次结构: 第一个服务对无所知。 我在第一个服务上发送数据的方式: 所以,我想将json拟人化为的Collection,而不是的Collection(
在sentinel进行切换时还会自动调用一个脚本(如果设置的话),做一些自动化操作,比如如果我们需要一个虚拟IP永远飘在Master上(这个VIP可不是被应用用来连接redis 的,用过的人都知道连接redis sentinel并不依赖于VIP的),那么可以在sentinel配置文件中配置: sentinel client-reconfig-script mymaster /redis/scrip
本文向大家介绍svn 将工作副本切换到其他分支,包括了svn 将工作副本切换到其他分支的使用技巧和注意事项,需要的朋友参考一下 示例 可以快速转换现有的工作副本以反映同一存储库中不同分支的内容。例如,您可能有主干的工作副本,现在需要在开发分支上工作。您可以使用以下svn switch命令来有效地修改现有的工作副本,而不必检出一个全新的工作副本(这会浪费大量时间和磁盘空间): 现在,您的工作副本将反
问题内容: 首先,我要说我是Ant的新手。就像之前一样,我只是在两天前才开始学习它以完成此任务。 我想要做的是创建一个“ master”蚂蚁脚本,该脚本调用其他几个蚂蚁脚本。例如: 现在,我拥有用于A,B和C的所有单独版本。通过这个,我的意思是我可以从这些文件夹中的任何一个运行“ ant”,它将构建项目并生成一个jar文件。如果以这种方式构建A,B和C,则我有3个jar文件。然后,我可以将它们