Как запустить crontab в качестве пользователя: www-data?

Для пользователей Subversion или тех, кто заинтересован в облегченных проверках, это также может помочь:

https://answers.launchpad.net/canonical-identity-provider/+question/209069

1
задан 15 December 2017 в 13:24

3 ответа

Вы также можете запустить crontab с аргументом -u для редактирования crontab для определенного пользователя:

sudo crontab -u www-data -e
41
ответ дан 25 May 2018 в 06:29

Для запуска crontab в качестве пользовательских www-данных вы можете использовать следующую команду:

crontab -u www-data -e

Затем вы пишете строку, например, для запуска php-файла каждые 15 минут:

*/15  *  *  *  * php -f /path_to_cron/cron.php

При сохранении его вам будет задан редактор:

File Name to Write: /tmp/crontab.HMpG7V 

Сохраните его, не беспокойтесь. crontab -e открывает файл в / tmp вместо фактического crontab, чтобы он мог проверить ваш новый crontab за ошибки и не дать вам переписать ваш фактический crontab с этими ошибками. Если ошибок нет, ваш фактический crontab будет обновлен. Если crontab -e просто написал прямо к вашему фактическому crontab, тогда вы рискуете выбросить весь свой crontab.

Чтобы проверить, что ваш cronjob работает, вы можете проверить журналы cron. обычно в /var/log/cron.log или выполнение следующей команды:

crontab -u www-data -l
3
ответ дан 25 May 2018 в 06:29

Я хотел бы добавить еще один подход. Как и другие люди, Ubuntu (16.04 здесь) и www-data crontab кажется ненадежным (может быть, это вопрос безопасности?).

В любом случае, в нашей компании нам нравится иметь все cronjob на сервере легко доступный, поэтому вы ничего не пропустите. В то же время мы не хотим запускать все (что-то действительно!) Как root.

Поэтому мы запускаем

sudo crontab -e 

Как вы обычно это делаете, а затем мы указываем command как

* * * * * /bin/su - www-data -s /bin/bash -c '/path/to/command'

Это будет выполняться / path / to / command как www-data, сохраняя cronjob в корневом файле cronjobs (и это всегда будет работать правильно). Это имеет приятное преимущество в том, что вы можете писать лог-файлы как root (для максимальной безопасности) с помощью труб.

Обратите внимание, что мы передаем нашу предпочтительную оболочку, это также может быть / bin / sh для более простой оболочки (нам просто нравятся полные возможности bash). Www-data не имеет оболочки, поэтому вы получите ошибки без нее. Обычно cron запускает задания только с / bin / sh.

-1
ответ дан 25 May 2018 в 06:29

Другие вопросы по тегам:

Похожие вопросы: