9

В версии Jessie для Raspberry Pi для ping требуется установить бит setuid . Что является обоснованием для этого?

1 ответ1

15

ping должен генерировать и получать ICMP-пакеты, и обычно это делается с использованием "сырых сокетов" - функции, ограниченной только root (cap_net_raw), поскольку ее также можно использовать для перехвата и прерывания другого трафика в системе.

Многие дистрибутивы теперь просто дают ping привилегию cap_net_raw (см. Страницы capabilities(7) и getcap(8) ) вместо полного корня setuid. Однако для этого необходимы ядро и файловая система для поддержки расширенных атрибутов (xattrs), и некоторые "минимальные" системы их отключают.

Также недавно был добавлен специальный тип сокета "ICMP", который позволяет отправлять только эхо-сообщения ICMP без каких-либо дополнительных привилегий. Команда ping для него еще не обновлена.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .