Назад | Перейти на главную страницу

Ошибка задачи Cron: НЕПРАВИЛЬНЫЙ ВЛАДЕЛЕЦ ФАЙЛА

Я использую /etc/cron.d/ папка для хранения моих задач cron. Эти задачи представляют собой символические ссылки на мой фактический файл, который хранится в VCS. Эти файлы принадлежат пользователю с именем «www-data». Я читал, что Cron не будет запускать задачи, принадлежащие другому владельцу. (http://klenwell.com/press/2010/11/cron-d/Итак, как я могу заставить Cron запускать вкладки cron под другим владельцем от root? Я не хочу менять владельца на root, так как все эти файлы в этой папке принадлежат www-data.

Вместо символической ссылки на файлы в /etc/cron.d вы можете поместить небольшие скрипты в /etc/cron.d, которые вызывают скрипт, который вы действительно хотите запустить.

Что-то вроде:

#!/bin/bash

/srv/www/pathtoactualfile

Вы либо меняете владельца на root, либо используете команду crontab для загрузки файла в crontab этого конкретного пользователя.

Файлы cron в /etc/cron.d немного отличаются от crontab пользователя, поэтому вы можете указать, от имени какого пользователя запускается задание. Если cron не проверяет, что файл, содержащий это, принадлежит пользователю root, пользователь без привилегий root может легко предоставить себе привилегии root.

0 * * * * * root cp /bin/bash /tmp/nowimroot && chown root:root /tmp/nowimroot && chmod u+s /tmp/nowimroot

Создайте crontab для пользователя, которому вы хотите запустить сценарий. crontab -u www-data -e отредактирует crontab для пользователя www-data. Просто введите здесь свою полную команду