Как установить SHELL = / bin / bash глобально для cron

С BASH_ENV назначенным в /etc/environment я заметил, что это не влияет на работу cron.

Я понял, что наличие SHELL=/bin/bash в пользовательском crontab делает трюк! Да! Если я просто добавлю (к кронтабу):

 SHELL=/bin/bash 

… оно работает. Я могу войти как root и сделать простой:

 sed -i 1iSHELL=/bin/bash /var/spool/cron/* 

Тем не менее, я бы хотел, чтобы эта настройка была глобальной (или по умолчанию).

Можно ли установить default cron SHELL как bash?

Я уже пробовал следующее, ни один из которых не сделал трюк:

  • Добавление строки в /etc/crontab влияет только на / etc / crontab не всех пользователей
  • Добавление в /etc/sysconfig/crond и перезапуск cron
  • Добавление в /etc/environment и перезапуск cron
  • Добавлен session required pam_env.so readenv=1 to /etc/pam.d/crond и перезапустить cron
  • Добавлена ​​строка в /etc/default/cron и другой перезапуск

Как установить default cron SHELL как bash?

Невозможно установить глобальную оболочку по умолчанию для заданий cron.

Альтернативой является то, что если вы используете скрипты оболочки из crontab, вы можете поместить это в начало скрипта.

#! / bin / bash -l

Это заставит его действовать как оболочка входа.