执行使用sudo调用的脚本步骤时,Rundeck权限被拒绝

时间:2016-11-20 12:15:23

标签: sudo rundeck

我的rundeck作业配置了一个脚本步骤,该步骤配置为使用sudo进行调用。作业配置ui中脚本步骤的执行预览显示: sudo -u ${option.mysudouser} scriptfile

在工作运行中,我收到以下错误:

  

< [sudo]密码我的ssh用户>:

     

sudo:无法执行/ tmp /< XXX> -dispatch-script.tmp.sh:权限被拒绝

在分析中我发现 / tmp /< XXX> -dispatch-script.tmp.sh 文件正在通过rundeck获取scp到我的节点主机没有执行perms for all。不幸的是<我的ssh用户>和我的< sudo用户>是不同的,不共享组。因此,作业运行因Permission问题而失败,因为具有脚本的临时文件无法作为sudo用户调用。

任何人都可以建议:
*如果rundeck提供任何配置值以确定正在创建的临时脚本文件的权限 *任何其他解决方法:
我已经尝试过如下指定脚本,但他们没有解决问题:
- chmod 777 /tmp/-dispatch-script.tmp.sh;sudo -u $ {option.mysudouser} scriptfile
- chmod 777 /tmp/
-dispatch-script.tmp.sh& amp ;& amp; sudo -u $ {option.mysudouser} scriptfile

请建议我如何解决此问题。

1 个答案:

答案 0 :(得分:0)

您的rundeck帐户需要sudo密码才能运行sudo -u ${option.mysudouser}。如果您可以在目标节点上配置rundeck帐户,那么它不需要sudo的密码。你应该好。

如果无法在目标节点上更改sudoer文件。您可以使用${option.mysudouser}作为执行用户。

Defining a node

<project> <node name="orion" description="a foodazzler service host" tags="staging,us-east" psFamily="unix" osName="Linux" hostname="orion" ssh-authentication="password" ssh-password-option="option.password" username="${job.mysudouser}" /> </project>