有没有办法以 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"');
你的例子是正确的。
此致,
尼古拉
当使用 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"');
你的例子是正确的。
此致, 尼古拉