In der Jessie-Version für den Raspberry Pi ping
muss das setuid
Bit gesetzt sein. Was ist der Grund dafür?
In der Jessie-Version für den Raspberry Pi ping
muss das setuid
Bit gesetzt sein. Was ist der Grund dafür?
Antworten:
ping muss ICMP-Pakete generieren und empfangen, und dies geschieht normalerweise über "Raw Sockets" - eine Funktion, die auf root (cap_net_raw) beschränkt ist, da sie auch dazu missbraucht werden kann, anderen Datenverkehr im System aufzuspüren und zu stören.
Viele Distributionen vergeben jetzt nur noch das Privileg cap_net_raw (siehe capabilities(7)
und getcap(8)
Handbuchseiten) anstelle von setuid root. 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" -Socket-Typ hinzugefügt, mit dem nur ICMP-Echo-Nachrichten ohne zusätzliche Berechtigungen gesendet werden können. Der Ping-Befehl wurde jedoch noch nicht aktualisiert.
getfattr --dump --match=.* /sbin/ping
.