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

时间:2015-07-29 16:21:20

标签: ssh sudo

使用Shipit自动化引擎时,我发现尝试使用" sudo"执行命令。来自非root用户(让我们调用它" devuser")导致连接关闭而不执行命令
这是我试图执行的命令:

  

shipit.remote(' sudo pwd');

请注意,在目标计算机上," devuser"可以使用" sudo"执行所有操作,而不会被问到他/她的密码(它可以选择目标系统)。
还要注意,没有" sudo" (这显然不需要提升许可)由Shipit执行完美罚款 例如,这个工作得很好:

  

shipit.remote(' PWD&#39);

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

1 个答案:

答案 0 :(得分:3)

简单的黑客就是在用shipit运行的每个命令中设置用户。这是一个小开销,特别是如果有很多命令,但它会做到这一点。对此的命令是:

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

在你的情况下:

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

你的榜样正确。

祝你好运, 尼古拉