В системе Linux демон cron используется для выполнения запланированных команд или скриптов.
По умолчанию задания cron запускаются от имени пользователя root.
Однако иногда необходимо запускать задания cron от имени пользователя, не являющегося root, например, пользователя www-data.
Пользователь www-data часто используется веб-серверами для запуска веб-приложений и обычно применяется в целях безопасности, чтобы ограничить ущерб, который может быть нанесен вредоносным заданием cron.
В этой статье мы обсудим, как правильно запускать crontab от имени пользователя www-data в системе Linux.
Шаг 1: Определим пользователя
Прежде чем начать, нам нужно определить, от имени какого пользователя мы хотим запустить задание cron.
В данном случае мы хотим запустить задание cron от имени пользователя www-data.
👥 Как вывести список всех пользователей на Linux
Чтобы проверить, от имени какого пользователя работает ваш веб-сервер, вы можете использовать следующую команду:
ps aux | grep apache2
На скриншоте выше, в первой строке показан пользователь ‘root’ для apache2.
Это основной процесс Apache, запущенный системной службой deamon.
Остальные запущены под пользователями ‘www-data’.
Шаг 2: Планирование задания Cron
Следующим шагом будет создание файла crontab для пользователя www-data.
Файл crontab используется для указания команд или скриптов, которые вы хотите запускать на регулярной основе.
Чтобы создать файл crontab для пользователя “www-data”, вы можете использовать следующую команду:
sudo crontab -u www-data -e
Теперь, когда у нас открыт файл crontab, мы можем добавить задание cron, которое мы хотим запустить.
Например, у вас в системе настроено приложение Laravel, и вы хотите запланировать запуск задания cron каждую минуту. вы добавите следующую строку в файл crontab:
## Laravel application cron to run every minute * * * * * cd /var/www/laravel-app && php artisan schedule:run >> /dev/null 2>&1
Шаг 3: Проверка задания Cron
sudo crontab -u www-data -l
Заключение
- 🐧 Как проверить логи Crontab на Linux
- 🐧 Как запустить несколько команд в одном задании Cron
- 🐍 Планирование выполнения скриптов Python с помощью Cronta
- ⏲️ Запуск задания cron каждые 12 часов (дважды в день)
- 🐧 Запуск Cron каждые 30 секунд