以 root 身份执行 Cron 作业需要 sudo 到另一个用户

以 root 身份执行 Cron 作业需要 sudo 到另一个用户

RHEL6 在 root 的 crontab 中有: * 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

该命令在常规 shell 中执行,但从 cron 运行时则不执行。

cron 进程运行良好,脚本的其余部分正确执行,只有 sudo 部分不起作用。

我已经更新了脚本:将 sudo 替换为 su,并在另一个脚本中测试,它似乎有效。今晚我将在实际脚本上进行测试,然后更新此帖子。

更改sudosu纠正该问题。

谢谢

答案1

如果脚本在 root 的 crontab 中运行,则应从命令中删除“sudo”。我以前见过这种情况,当您已经是 root 时尝试“sudo”会导致命令失败。

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

相关内容