От какого пользователя запускаются скрипты в папках cron? (т.е. cron.daily, cron.hourly и т. д.)

51

Если я положу скрипт в /etc/cron.daily для CentOS, каким пользователем он будет работать? Все они запускаются от имени root или как владелец?

Кайл МакФарлейн
источник

Ответы:

52

Они все бегут как root. Если вам нужно иное, используйте suв сценарии или добавьте запись crontab в crontab пользователя ( man crontab) или в общесистемный crontab (расположение которого я не могу сказать вам в CentOS).

geekosaur
источник
17

Изменить: мой ответ на самом деле не применяется в этом случае, см. Комментарий Zoredache ниже. Извините, все (особенно геекозавр). Кайл, учтите, что если вы хотите регулярно запускать скрипт от имени пользователя без полномочий root, может быть полезно следующее: просто делайте это через cron.d, а не cron. {ежечасно, ежедневно, еженедельно, ежемесячно}.

Ненавижу противоречить, но боюсь, что гикозавр не совсем прав. Они запускаются с правами root, если не указано иное . Вот часть /etc/cron.d/muninфайла моего CentOS-бокса :

# cron-jobs for munin
MAILTO=root
1-56/5 * * * *     munin /usr/share/munin/munin-limits --force

Обратите внимание, что в основной строке (строка 3) перед исполняемым файлом указано имя пользователя. Эта конкретная запись cron запускается от имени пользователя munin, поэтому при условии, что ваш cron аналогичен CentOS 5 (vixie-cron-4.1-77), вы должны быть в состоянии сделать то же самое.

MadHatter поддерживает Монику
источник
3
Кажется, он говорит конкретно о cron.daily и cron.weekly, а не о cron.d / *.
Зоредаче
4
D'о! Спасибо, Зоредаче; Я должен прочитать вопрос более внимательно. Нет кофе еще! Я бы удалил его, но я думаю, что в моем ответе все еще есть полезная информация - только не для ОП - поэтому я склонен оставить его в силе. Как вы думаете? (Извините за ошибочно прыгнувший, geekosaur).
MadHatter поддерживает Монику
geekosaur ответил на мой основной вопрос, но я никогда не знал, для чего на самом деле предназначена папка cron.d. cron.daily и т. д. довольно очевидны, как и crontab. Но где же находится cron.d?
Кайл Макфарлейн,
1
Вы уже поняли, что идея использовать каталоги, а не отдельные файлы для хранения коллекций, состоит в том, что пакету проще добавить запись: просто поместите файл в каталог, вместо того, чтобы пытаться выполнить сложный вызов sed для редактирования фрагментов. текста в и из файлов ...
MadHatter поддерживает Монику
... В случае с munin, он должен запускать задание каждые пять минут, а не как root. Это прекрасный пример того, почему cron. {Ежечасно и т. Д.} Подходит не всем; некоторые задания cron по-прежнему хотят указывать частоту, и, возможно, пользователя, и для них cron.d лучше. Другие не делают, а для них cron. {Ежечасно и т. Д.} Проще, так как они просто сбрасывают сценарий вместо сценария плюс обертку с настройками времени / пользователя.
MadHatter поддерживает Монику