Warum erfordert Ping das Setuid-Bit?

3196
Old Geezer

In der Jessie-Version für den Raspberry Pi pingmuss das setuidBit gesetzt sein. Was ist der Grund dafür?

8

1 Antwort auf die Frage

13
grawity

Ping muss ICMP-Pakete generieren und empfangen, und das geschieht normalerweise mit "Raw Sockets" - einer Funktion, die auf root beschränkt ist (cap_net_raw), da sie auch dazu missbraucht werden könnte, anderen Datenverkehr auf dem System auszulesen und zu stören.

Viele Distributionen geben jetzt nur noch das cap_net_raw- Privileg (siehe capabilities(7)und getcap(8)Handbuchseiten) anstelle des vollen Setuid- Roots an . Dies erfordert jedoch sowohl den Kernel als auch das Dateisystem, um erweiterte Attribute (xattrs) zu unterstützen, und einige "minimale" Systeme deaktivieren diese.

Außerdem wurde kürzlich ein spezieller "ICMP" -Sockeltyp hinzugefügt, der das Senden von ICMP-Echo-Nachrichten ohne zusätzliche Berechtigungen ermöglicht. Der Ping-Befehl wurde jedoch noch nicht aktualisiert.

Ich denke, Fähigkeiten (7) verwenden keine xattrs. ggg vor 7 Jahren 0
@ggg: Aber das tut es. Versuchen Sie "getfattr --dump --match =. * / Sbin / ping". grawity vor 7 Jahren 2