当使用
Shipit自动化引擎时,我发现尝试使用非root用户使用“sudo”执行命令(让我们称之为“devuser”)会导致连接关闭而不执行命令.
这是我正在尝试执行的命令:
shipit.remote(‘sudo pwd’);
请注意,在目标计算机上,“devuser”可以使用“sudo”执行所有操作,而不会被问到他/她的密码(它是目标系统的选择).
另请注意,没有“sudo”(显然不需要提升权限)调用的所有内容都会被Shipit完美地执行.例如,这个工作得很好:shipit.remote(‘pwd’);
现在的问题是:我做错了什么或是这样设计(例如避免特权升级)?
如果是后者:有没有办法解决这个问题? 简单的黑客就是在用shipit运行的每个命令中设置用户.这是一个小开销,特别是如果有很多命令,但它会做到这一点.命令是:su - <user> -c "<command>"
在你的情况下:
shipit.remote('su - devuser -c "pwd"');
你跟你的榜样走在正确的轨道上.
最好的祝福,尼古拉
精彩评论