Supondo que os documentos são ruins ou errados, um mergulho com código fonte:
% rpm -qa | grep cron
cronie-1.4.11-17.el7.x86_64
cronie-anacron-1.4.11-17.el7.x86_64
crontabs-1.11-6.20121102git.el7.noarch
... alguns altagoobingleduckgoing aqui como o URL no RPM está quebrado ...
% git clone https://github.com/cronie-crond/cronie && cd cronie
% fgrep -rl 'chdir failed' .
./src/security.c
... para que o erro apareça apenas em um lugar, dentro da chamada cron_change_user_permanently
que é chamada de vários outros locais no código ...
% grep cron_change_user_permanently **/*.c
src/do_command.c: if (cron_change_user_permanently(e->pwd, env_get("HOME", jobenv)) < 0)
src/do_command.c: if (cron_change_user_permanently(e->pwd, env_get("HOME", jobenv)) < 0)
src/popen.c: if (cron_change_user_permanently(pw, env_get("HOME", jobenv)) != 0)
src/security.c:int cron_change_user_permanently(struct passwd *pw, char *homedir) {
... então, em todos os casos, a variável de ambiente HOME
parece ser usada para determinar para onde chdir
para o usuário, e sempre há um chdir
para esse diretório. Portanto, você precisará garantir que o diretório HOME
exista ou que HOME
seja definido corretamente antes cron_change_user_permanently
ser chamado (o que provavelmente acontece antes que o código do shell em sua tarefa do cron seja olhou para). (Ou patch de macaco cronie
para fazer outra coisa, mas provavelmente é uma idéia muito ruim.)