【问题标题】:Is there a way to execute Shipit "remote" commands that use "sudo" with a user other than root?有没有办法以 root 以外的用户执行使用“sudo”的 Shipit“远程”命令?
【发布时间】:2015-07-29 16:21:19
【问题描述】:

在使用Shipit 自动化引擎时,我发现尝试使用“sudo”从非 root 用户(我们称之为“devuser”)执行命令会导致连接关闭而不执行命令.
这是我正在尝试执行的命令:

shipit.remote('sudo pwd');

请注意,在目标计算机上,“devuser”可以使用“sudo”执行所有操作,而无需询问他/她的密码(这是目标系统的选择)。
另请注意,在没有“sudo”的情况下调用的所有内容(显然不需要提升权限)都可以由 Shipit 完美执行。
例如,这个工作得很好:

shipit.remote('pwd');

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

【问题讨论】:

    标签: ssh sudo


    【解决方案1】:

    简单的破解方法是在您使用shipit 运行的每个命令中设置用户。这是很少的开销,特别是如果有很多命令,但它会解决问题。命令是:

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

    在你的情况下:

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

    你的例子是正确的。

    最好的问候, 尼古拉

    【讨论】:

    • 谢谢@nicola-loncar。你的回答很中肯,我会尽快尝试的。
    • 是否可以将它与shipit-deploy 任务一起使用?因为它不可定制
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 2020-06-24
    • 2020-12-30
    • 2014-01-07
    • 2012-07-24
    • 1970-01-01
    相关资源
    最近更新 更多