“/etc/cron.d/” 文件中的 cron 任务是否不应包含“sudo”?

“/etc/cron.d/” 文件中的 cron 任务是否不应包含“sudo”?

在 中/etc/cron.d/myjob,我创建了一个运行 bash 脚本的 cron 任务,并将其 stdout 和 stderr 重定向到日志文件。该脚本包含一行sudo运行命令。

在日志文件中:

sudo: no tty present and no askpass program specified

这是否会导致一些需要我注意的问题?

我想知道/etc/cron.d/文件中的 cron 任务是否应该不包含sudo

谢谢。

答案1

“假设”是一种判断。

调用的命令/etc/cron.d/以指定用户身份运行(无论是用户root还是任何其他用户;它在 cron 行中定义)。所以,一般情况下,是没有必要的sudo

但是如果你有一个调用的脚本,sudo那么您需要确保sudoers输入正确。尤其:

  • 确保该条目已分配给运行脚本的用户(这可能是root
  • 确保该条目已NOPASSWD设置属性,以便无需任何人输入密码即可运行。

您看到的错误是因为该sudo命令需要密码,但没有终端可以提供密码。

编写良好的脚本会检测它是否以正确的权限运行,并且sudo根本不会调用,但有很多糟糕的脚本:-)

相关内容