* [devel] I: service-0.0.3: introduction to new start/stop service scheme
@ 2003-04-25 21:41 Dmitry V. Levin
2003-04-27 19:09 ` Dmitry V. Levin
2003-04-29 14:51 ` [devel] " Michael Shigorin
0 siblings, 2 replies; 4+ messages in thread
From: Dmitry V. Levin @ 2003-04-25 21:41 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 2001 bytes --]
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
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [devel] I: service-0.0.3: introduction to new start/stop service scheme
2003-04-25 21:41 [devel] I: service-0.0.3: introduction to new start/stop service scheme Dmitry V. Levin
@ 2003-04-27 19:09 ` Dmitry V. Levin
2003-04-29 14:51 ` [devel] " Michael Shigorin
1 sibling, 0 replies; 4+ messages in thread
From: Dmitry V. Levin @ 2003-04-27 19:09 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 494 bytes --]
On Sat, Apr 26, 2003 at 01:41:51AM +0400, Dmitry V. Levin wrote:
> В Сизифе уже есть (пока) один пример использования, /etc/init.d/crond из
> пакета vixie-cron-3.0.1-ipl57mdk, можно сравнить файлом из предыдущей
> версии.
За эти дни примеров прибавилось, и в Sisyphus-20030427 таких пакетов уже 6:
$ rpmquery --whatrequires '/etc/rc.d/init.d(start_daemon)'
gpm-1.20.1-alt1
klogd-1.4.1-alt13
openssh-server-3.6.1p1-alt3
syslogd-1.4.1-alt13
vixie-cron-3.0.1-ipl57mdk
xinetd-2.3.11-alt2
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* [devel] Re: I: service-0.0.3: introduction to new start/stop service scheme
2003-04-25 21:41 [devel] I: service-0.0.3: introduction to new start/stop service scheme Dmitry V. Levin
2003-04-27 19:09 ` Dmitry V. Levin
@ 2003-04-29 14:51 ` Michael Shigorin
2003-04-29 15:03 ` Dmitry V. Levin
1 sibling, 1 reply; 4+ messages in thread
From: Michael Shigorin @ 2003-04-29 14:51 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 1167 bytes --]
On Sat, Apr 26, 2003 at 01:41:51AM +0400, Dmitry V. Levin wrote:
> - При запуске демона осуществляется поиск уже запущенных процессов, при
> этом есть шанс ошибочного нахождения процесса, обслуживающего клиента,
> что препятствует запуску демона.
> ssh localhost
> su -
> service sshd restart (ой!)
Тут еще вопрос с портами остался -- что делать с имеющимися sshd?
inmetex:~> netstat -na | grep :22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 10.0.1.1:22 10.0.1.105:33576 ESTABLISHED
tcp 0 0 213.186.211.22:22 10.0.1.104:1330 ESTABLISHED
tcp 0 0 10.0.1.1:22 10.0.1.242:33129 ESTABLISHED
tcp 0 40 10.0.1.1:22 10.0.1.105:34759 ESTABLISHED
Если сейчас сделать service sshd restart, то все равно останутся
процессы, которые открыли соединение с локального trusted :22 --
если я правильно понимаю, при таком раскладе bind()нуться к :22
пытающемуся вновь запуститься sshd просто не дадут.
Нет?
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [devel] Re: I: service-0.0.3: introduction to new start/stop service scheme
2003-04-29 14:51 ` [devel] " Michael Shigorin
@ 2003-04-29 15:03 ` Dmitry V. Levin
0 siblings, 0 replies; 4+ messages in thread
From: Dmitry V. Levin @ 2003-04-29 15:03 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 1482 bytes --]
On Tue, Apr 29, 2003 at 05:51:48PM +0300, Michael Shigorin wrote:
> On Sat, Apr 26, 2003 at 01:41:51AM +0400, Dmitry V. Levin wrote:
> > - При запуске демона осуществляется поиск уже запущенных процессов, при
> > этом есть шанс ошибочного нахождения процесса, обслуживающего клиента,
> > что препятствует запуску демона.
> > ssh localhost
> > su -
> > service sshd restart (ой!)
>
> Тут еще вопрос с портами остался -- что делать с имеющимися sshd?
С процессами sshd, обслуживающими клиентов, ничего делать не надо.
Наоборот, эти процессы надо обходить стороной.
> inmetex:~> netstat -na | grep :22
> tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
> tcp 0 0 10.0.1.1:22 10.0.1.105:33576 ESTABLISHED
> tcp 0 0 213.186.211.22:22 10.0.1.104:1330 ESTABLISHED
> tcp 0 0 10.0.1.1:22 10.0.1.242:33129 ESTABLISHED
> tcp 0 40 10.0.1.1:22 10.0.1.105:34759 ESTABLISHED
>
> Если сейчас сделать service sshd restart, то все равно останутся
> процессы, которые открыли соединение с локального trusted :22 --
> если я правильно понимаю, при таком раскладе bind()нуться к :22
> пытающемуся вновь запуститься sshd просто не дадут.
>
> Нет?
Нет:
$ fgrep -n SO_REUSEADDR openssh-3.6.1p1/sshd.c
1171: if (setsockopt(listen_sock, SOL_SOCKET, SO_REUSEADDR,
1173: error("setsockopt SO_REUSEADDR: %s", strerror(errno));
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2003-04-29 15:03 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-04-25 21:41 [devel] I: service-0.0.3: introduction to new start/stop service scheme Dmitry V. Levin
2003-04-27 19:09 ` Dmitry V. Levin
2003-04-29 14:51 ` [devel] " Michael Shigorin
2003-04-29 15:03 ` Dmitry V. Levin
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git