Nella versione Jessie per Raspberry Pi, ping
richiede l' setuid
impostazione del bit. Qual è la logica per questo?
Nella versione Jessie per Raspberry Pi, ping
richiede l' setuid
impostazione del bit. Qual è la logica per questo?
Risposte:
ping ha bisogno di generare e ricevere pacchetti ICMP, e di solito viene fatto usando "raw socket" - una funzione limitata a root (cap_net_raw) perché potrebbe anche essere abusata per annusare e interrompere altro traffico sul sistema.
Molte distribuzioni ora solo dare ping il CAP_NET_RAW privilegio (vedi capabilities(7)
e getcap(8)
le pagine di manuale) invece della piena setuid root. Ciò tuttavia necessita sia del kernel che del filesystem per supportare attributi estesi (xattrs), e alcuni sistemi "minimal" disabilitano quelli.
Inoltre, recentemente è stato aggiunto uno speciale tipo di socket "ICMP" che consente di inviare solo messaggi Echo ICMP, senza alcun privilegio aggiuntivo. Tuttavia, il comando ping non è stato ancora aggiornato.
getfattr --dump --match=.* /sbin/ping
.