Как crond определяет, какой домашний каталог для пользователя? - PullRequest
0 голосов
/ 06 ноября 2018

Мой вопрос:
Как я могу сообщить 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

...