我的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
请建议我如何解决此问题。
答案 0 :(得分:0)
您的rundeck帐户需要sudo密码才能运行sudo -u ${option.mysudouser}
。如果您可以在目标节点上配置rundeck帐户,那么它不需要sudo的密码。你应该好。
如果无法在目标节点上更改sudoer文件。您可以使用${option.mysudouser}
作为执行用户。
<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>