Мой вопрос:
Как я могу сообщить cron, каков фактический домашний каталог для пользователя?
Крон пытается найти неправильный каталог.
Я хотел бы, чтобы cron и chdir $(getent passwd someone | awk -F':' '{ print $6 }')
В существующем состоянии cronjob, запланированный для выполнения в /var/spool/cron/someone
, делает ошибки журнала cron в /var/log/cron
.
Кронджоб это:
0 5 * 2,5,8,11 1 [ $(date +\%d) -le 07 ] && /opt/someone/script.py
Ошибка:
Nov 5 05:00:01 localhost CROND[17130]: (CRON) ERROR chdir failed (/home/someone): No such file or directory
На самом деле нет такого файла или каталога в /home/someone
.
Крон не должен ожидать, что он будет. Мне нужен cron для chdir к фактическому каталогу пользователя, который является /opt/someone
.
-bash-4.2$ getent passwd someone
someone:x:989:986:someone:/opt/someone:/bin/bash
Как someone
:
-bash-4.2$ echo $HOME
/opt/someone
Пользователь был когда-то создан с /home/someone
в качестве домашнего каталога.
Может ли это быть проблемой кеширования? У меня нет разрешения на перезапуск службы cron.
-bash-4.2$ egrep 'shadow|passwd' /etc/nsswitch.conf
passwd: files sss
shadow: files sss
Детали пакета cron daemon:
$ rpm -qa | grep cronie
cronie-1.4.11-19.el7.x86_64
$ uname -r
3.10.0-862.el7.x86_64
Это говорит о том, что мне нужно исправить это вне файла crontab: https://unix.stackexchange.com/a/442550
С уважением,
Joost