НАЗВА

crond - демон cron (Dillon's Cron)

СТИСЛИЙ ОГЛЯД

crond [-l#] [-d[#]] [-f] [-b] [-c каталог]

ОПЦІЇ

crond являється демоном, що працює у фоновому режимі, обробляючи окремі файли crontab(1) і виконуючи команди відповідних користувачів.

-l журнальний_рівень : Ця опція встановлює рівень багатослівності журнальних записів, за замовчуванням дорівнює 8.

-d [рівень_відлагодження] : Встановлює рівень відлагодження, за замовчуванням дорівнює 0. Якщо числове значення не надане з -d, вживатиметься 1. Ця опція також встановлює журнальний рівень до 0 і заставляє crond працювати у фоновому режимі.

-f : Запустить crond у пріоритетному режимі.

-b : Запустить crond у фоновому режимі. Стандартне поводження, хіба було вжито опцію -d.

-c каталог : Вказує каталог, у якому знаходяться файли crontab.

ОПИС

crond відповідає за перегляд файлів crontab і виконання, внесених туди команд, у відповідний час. Програма crontab(1) спілкується з crond через файл cron.update, який повинен знаходитись разом з рештою файлів каталогу crontab, як правило - /var/spool/cron/crontabs. Це досягається шляхом додання назви зміненого або видаленого файлу crontab до cron.update, який crond потім перечитує, щоб синхронізувати або видалити власний образ цього файлу.

crond включає багато обмежень для того, щоб запобігти зловживань. Потенційні нескінчені цикли під час обробки знешкоджуються безпечним лічильником і файли crontab користувачів, як правило, обмежені до 256 записів, які не можуть бути довшими з 1024 знаки, включаючи символ нового рядка.

Під час виконання завдання, crond спочатку створює тимчасовий файл, що належить самому crond, з прапорцями O_EXCL і O_APPEND для збереження можливого виводу, після чого відгалужується з допомогою fork() і міняє власні користувацькі дозволи і дозвіл групи на ті, що відповідають користувачеві, від чиєго імені буде виконуватись завдання і, накінець, виконує /bin/sh -c для здійснення самого завдання. Тимчасовий файл залишається власністю crond, щоб впевнитись, що жоден користувач не зловживатиме доступом до нього. По завершенню завдання, crond перевіряє цілісність поштового файлу і як до останнього було доточено, відправляє поштою файл користувачеві. Програму sendmail буде запущено під користувацьким ідентифікаційним номером, щоб запобігти вразливостей, пов'язаних з поштою. На відміну від crontab, програма crond не залишає дескриптор файлу відкритим напротязі виконання завдання, оскільки це може призвести до того, що crond не вистачить дескрипторів. Коли crontab дозволяє користувачеві відредагувати власний файл із завданнями, він попередньо копіює crontab-файл до файлу, що належить користувачеві і лише після цього запускає редактор, вибраний користувачем. Програма crontab, маючи SUID-дозвіл, триматиме дескриптор файлу, до якого пізніше буде записано модифікований користувачем файл, відкритим, таким чином переконуючись, що користувач не змінив тип файлу.

АВТОР

Matthew Dillon (dillon@apollo.west.oic.com)

ДИВІТЬСЯ ТАКОЖ

crontab(1)

Переклав Віталій Цибуляк (vt@uatech.atspace.com)