Mengapa ping membutuhkan bit setuid?

9

Dalam versi Jessie untuk Raspberry Pi, pingdiperlukan setuidbit yang harus ditetapkan. Apa alasan untuk ini?

Pak Tua
sumber

Jawaban:

15

Ping perlu membuat dan menerima paket ICMP, dan biasanya itu dilakukan dengan menggunakan "soket mentah" - fitur yang terbatas pada root (cap_net_raw) karena juga dapat disalahgunakan untuk mengendus dan mengganggu lalu lintas lainnya pada sistem.

Banyak distribusi sekarang hanya memberikan ping hak istimewa cap_net_raw (lihat capabilities(7)dan getcap(8)halaman manual) alih-alih root setuid penuh. Namun ini membutuhkan kernel dan sistem file untuk mendukung atribut yang diperluas (xattrs), dan beberapa sistem "minimal" menonaktifkannya.

Juga, baru-baru ini jenis soket "ICMP" khusus telah ditambahkan yang memungkinkan pengiriman pesan ICMP Echo saja, tanpa hak istimewa tambahan. Perintah ping belum diperbarui untuk itu.

pengguna1686
sumber
saya pikir kemampuan (7) tidak menggunakan xattrs.
ggg
2
@ Ggg: Tapi itu benar. Coba getfattr --dump --match=.* /sbin/ping.
user1686