使用Shipit自动化引擎时,我发现尝试使用" sudo"执行命令。来自非root用户(让我们调用它" devuser")导致连接关闭而不执行命令。
这是我试图执行的命令:
shipit.remote(' sudo pwd');
请注意,在目标计算机上," devuser"可以使用" sudo"执行所有操作,而不会被问到他/她的密码(它可以选择目标系统)。
还要注意,没有" sudo" (这显然不需要提升许可)由Shipit执行完美罚款
例如,这个工作得很好:
shipit.remote(' PWD&#39);
此时的问题是:我是做错了还是这样设计(例如避免特权升级)? 如果是后者:有没有办法解决这个问题呢?
答案 0 :(得分:3)
简单的黑客就是在用shipit
运行的每个命令中设置用户。这是一个小开销,特别是如果有很多命令,但它会做到这一点。对此的命令是:
su - <user> -c "<command>"
在你的情况下:
shipit.remote('su - devuser -c "pwd"');
你的榜样正确。
祝你好运, 尼古拉