Centos 7 上的系统 crontab 不会为某些用户运行

Centos 7 上的系统 crontab 不会为某些用户运行

我有一个非常简单的系统 crontab,以特定用户身份运行。对于可以登录 Gnome 会话的用户,它运行良好。对于我仅用于系统任务的其他用户,它不会运行。

这是一个显示正在运行的 CentOS 7 框systemctl status crond

为了调试这种情况,我将文件缩减/etc/cron.d/test为:

SHELL=/bin/bash

* * * * * etluser /bin/echo "-- trying" >> /tmp/auto_services.txt

与用户埃特鲁斯什么都没运行。tmp 文件没有出现。没有输出journalctl -xe,没有/var/log/cron条目,也没有发给 root 的电子邮件。

$ getent group etluser
etluser:x:499:otheruser

$ getent passwd etluser
etluser:x:600:499::/home/etluser:/bin/bash

$ getent shadow
etluser:$6$mw...../:18429:0:90:7:::

也是/etc/cron.deny空的并且/etc/cron.allow不存在。

如果我将 cron.d 文件中的用户更改为我的标准登录用户其他用户那么工作就顺利进行。

SHELL=/bin/bash

* * * * * otheruser /bin/echo "-- trying" >> /tmp/auto_services.txt

/etc/pam.d/crond节目

account    include    system-auth
session    required   pam_loginuid.so
session    include    system-auth
auth       include    system-auth

知道我错过了什么吗?

答案1

如果用户的密码已过期,作业似乎将无法运行。我通常不知道发生了这种情况,因为我只是sudo -u etluser -i以该用户的身份工作,而且这不会失败。

重置密码成功了。现在我只需要设置一个虚拟密码,并将有效期设置为永久。

相关内容