W wersji Jessie dla Raspberry Pi ping
wymaga ustawienia setuid
bitu. Jakie jest tego uzasadnienie?
W wersji Jessie dla Raspberry Pi ping
wymaga ustawienia setuid
bitu. Jakie jest tego uzasadnienie?
Odpowiedzi:
ping musi generować i odbierać pakiety ICMP, i zwykle odbywa się to za pomocą „surowych gniazd” - funkcji ograniczonej do roota (cap_net_raw), ponieważ można go również wykorzystywać do wąchania i zakłócania innego ruchu w systemie.
Wiele dystrybucji teraz po prostu dać Odpytaj CAP_NET_RAW uprawnień (zob capabilities(7)
i getcap(8)
strony podręcznika) zamiast pełnej setuid korzeń. Jednak to wymaga zarówno jądra, jak i systemu plików do obsługi rozszerzonych atrybutów (xattrs), a niektóre „minimalne” systemy wyłączają je.
Ponadto ostatnio dodano specjalny typ gniazda „ICMP”, który umożliwia wysyłanie tylko komunikatów ICMP Echo, bez żadnych dodatkowych uprawnień. Polecenie ping nie zostało jednak dla niego zaktualizowane.
getfattr --dump --match=.* /sbin/ping
.