У версії Jessie для Raspberry Pi ping
потрібно встановити setuid
біт. Що обґрунтовує це?
У версії Jessie для Raspberry Pi ping
потрібно встановити setuid
біт. Що обґрунтовує це?
Відповіді:
ping повинен генерувати та отримувати пакети ICMP, і зазвичай це робиться за допомогою "raw sockets" - функція, обмежена коренем (cap_net_raw), оскільки його також можна зловживати, щоб нюхати та порушити інший трафік у системі.
Зараз у багатьох дистрибутивах просто надається пінг привілей cap_net_raw (див . Сторінки capabilities(7)
та getcap(8)
інструкції) замість повного встановленого кореня. Однак для цього потрібно як ядро, так і файлова система для підтримки розширених атрибутів (xattrs), а деякі "мінімальні" системи відключають їх.
Також нещодавно було додано спеціальний тип розеток "ICMP", який дозволяє надсилати повідомлення ICMP Echo лише без додаткових привілеїв. Команда ping для неї ще не оновлена.
getfattr --dump --match=.* /sbin/ping
.