有没有办法以 root 以外的用户执行使用 "sudo" 的 Shipit "remote" 命令?

Is there a way to execute Shipit "remote" commands that use "sudo" with a user other than root?

当使用 Shipit 自动化引擎时,我发现尝试使用 "sudo" 从非 root 用户(我们称之为 "devuser")执行命令会导致 结果在没有执行命令的情况下关闭连接
这是我要执行的命令:

shipit.remote('sudo pwd');

请注意,在目标机器上,"devuser" 可以使用 "sudo" 执行所有操作,而无需询问 his/her 密码(这是目标系统的选择)。
另请注意,在没有 "sudo" 的情况下调用的所有内容(并且显然不需要提升的权限)都可以由 Shipit 完美执行。
E.g.this 一个很好用:

shipit.remote('pwd');

此时的问题是:我是做错了什么还是故意这样设计的(例如,为了避免特权升级)? 如果是后者:有没有办法解决这个限制?

简单的破解方法是在每个命令中设置用户 运行 shipit。这是很小的开销,尤其是在有很多命令的情况下,但它可以解决问题。命令是:

su - <user> -c "<command>"

你的情况:

shipit.remote('su - devuser -c "pwd"');

你的例子是正确的。

此致, 尼古拉