[devel] I: service-0.0.3: introduction to new start/stop service scheme
Dmitry V. Levin
ldv на altlinux.org
Сб Апр 26 01:41:51 MSD 2003
Greetings!
С пакета service-0.0.3 начинается внедрение новой схемы
start/stop-скриптов.
1. Недостатки прежней схемы.
Ныне действующая практика, унаследованная от RedHat, и используемая
почти во всех RH-совместимых дистрибутивах, основана на поиске процессов
по имени, что чревато проблемами, некоторые их которых перечислены ниже:
- При запуске демона осуществляется поиск уже запущенных процессов, при
этом есть шанс ошибочного нахождения процесса, обслуживающего клиента,
что препятствует запуску демона.
- При остановке демона и отсутствии pid-файла осуществляется поиск уже
запущенных процессов, при этом есть шанс ошибочного нахождения процесса,
обслуживающего клиента, что приводит к остановке процессов, которые не
подлежат остановке.
- Вообще, при поиске процессов по неполному имени есть шанс ошибочного
нахождения процесса, не имеющего отношения к искомому, как случайно, так
и вследствие атаки, организованной локальным злоумышленником.
Вот пара примеров из реальной жизни:
- Попытка перезапуска sshd.
ssh localhost
su -
service sshd restart (ой!)
service sshd restart (ой-ой-ой!)
- Попытка перезапуска crond.
echo '* * * * * nobody /usr/bin/pause' >/etc/cron.d/pause
chmod 700 /etc/cron.d/pause
(через одну-две минуты будет запущен процесс /usr/bin/pause)
service сrond restart (ой!)
2. Новая схема призвана устранить эти недостатки.
За основу взята реализация из Owl, основанная на Debian-derived
start-stop-daemon. При использовании pid-файлов совместно с абсолютными
путями к исполняемым файлам процессов удаётся избежать проблем,
перечисленных выше.
Текущая реализация (0.0.3), как видно по номеру, не является
окончательной. Документация типа той, что есть к прежней схеме
(/usr/share/doc/initscripts-*/sysvinitfiles), ещё не написана.
В Сизифе уже есть (пока) один пример использования, /etc/init.d/crond из
пакета vixie-cron-3.0.1-ipl57mdk, можно сравнить файлом из предыдущей
версии.
Пожелания и сообщения об ошибках приветствуются.
--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 189 байтов
Описание: отсутствует
Url : http://lists.altlinux.org/pipermail/devel/attachments/20030426/735b7818/attachment.bin
Подробная информация о списке рассылки Devel