[Devel] Отправка ICMP от пользователя

Ivan A. Melnikov =?iso-8859-1?q?iv_=CE=C1_etersoft=2Eru?=
Пт Мар 13 12:27:54 MSK 2009


On Thu, 12 Mar 2009 22:47:21 +0300
Vitaly Lipatov <lav на etersoft.ru> wrote:

> В WINE возникает задача выполнять команду ping,
> которая формирует icmp-запросы.
> Как известно, пользователю отправить такой запрос не разрешено. 
> Одним из вариантов является управление capabilities, чтобы 
> разрешить ICMP. Как я понял, стандартной команды нет, но вот 
> обнаружилось решение:
> http://bugs.etersoft.ru/show_bug.cgi?id=2382#c6
> Может кто-то дополнить, или нам собирать свой chcap? для 
> разрешения ping?
>

С 2002 года многое изменилось. capabilities хранятся в расширенных
атрибутах файловой системы -- получается некий аналог suid-бита. Для
управления ими есть специальная библиотека (libcap), вместе с которой
поставляются несложные инструменты управления (в Alt -- пакет
libcap-utils, работоспособность лично не проверял, но собирает ldv, что
внушает).

Отдельные биты capabilities могут быть переданы процессу от его
родителя. Процесс, запущенный от рута, изначально имеет все
capabilities, но может их сбрасывать или (вроде бы) помечать для
сохранения после смены эффективного uid. Я не знаю, как устроена wine и
где там проще что делать.

Хотя большинство систем вроде бы нормально поддерживает capabilities,
они могут быть вообще выключены из ядра, собираться в виде модуля (как
одно время было в altlinux), выключаться из командной строки ядра.

Вот такие вот $0.02.

-- 
Best Regards,
Ivan A. Melnikov


Подробная информация о списке рассылки devel