sudo 命令在 cron 中不起作用

sudo 命令在 cron 中不起作用

我有一个小脚本,我想在 cron 中以 user1 的身份运行它。如果我以 user1 身份登录并执行脚本,它就可以正常工作,但是当我尝试在 cron 中运行它时,它不起作用。如果我以 root 身份运行 cron,一切都会正常。以下是我正在做的事情。

脚本有以下命令

sudo virsh list --all | grep myvm | awk '{print $3}'
running

因此,如果我以 user1 身份运行它或将其放入文件中,一切都会正常。但我将其添加为

*/5 * * * * user1 /path/to/script

如果我在 cron 中以 root 身份运行,则无需 sudo * * * * * root /path/to/script 即可顺利运行。

我的 Sudoers 文件

Cmnd_Alias KVMCMD = /usr/bin/virsh list --all
%user1  ALL=(ROOT) NOPASSWD: KVMCMD

我不能直接责怪 sudoers,因为手动运行命令有效(可能是因为 tty)

答案1

回答我自己的问题。

解决方案之一是

编辑(以 root 身份)文件

/etc/sudoers

并注释掉以下行:

Defaults requiretty

相关内容