Cron作为根需要sudo到另一个用户

RHEL6在rootcrontab中有: * 21 * * * /root/script.sh

在script.sh中有一行: /usr/bin/sudo -u jira bash -c 'cd /opt/jira/bin; ./stop-jira.sh' && echo "Jira Shut Down" >> /root/debuglog /usr/bin/sudo -u jira bash -c 'cd /opt/jira/bin; ./stop-jira.sh' && echo "Jira Shut Down" >> /root/debuglog

该命令在普通shell中执行,但在从cron运行时不执行。

cron进程正常工作,脚本的其余部分正确执行,只是sudo部分不起作用。

我已经更新了脚本:换sudo su并在另一个脚本中testing,它似乎工作。 我会testing今晚的实际脚本,然后更新这个post。

sudo su改正了这个问题。

谢谢

如果脚本在root的crontab中运行,你应该从命令中删除'sudo'。 我以前见过这个,当你已经是root的时候试图“sudo”会导致命令失败。

如果你想切换用户,那么以root身份运行的命令是'su -l jira',而不是sudo -u jira。