Ich habe hier eine ziemlich tiefe Frage, die hoffentlich jemand beantworten kann. In macOS können normale Benutzer sowohl Ping- als auch Root-Befehle ausführen. Normalerweise ist Root-Zugriff erforderlich, um den Raw-Socket zu öffnen, der zum Ausführen von Ping erforderlich ist. Unter Linux ist mir aufgefallen, dass dies in der Regel dadurch erreicht wird, dass der Ping-Programmdatei erweiterte Attribute hinzugefügt werden, um den Root-Zugriff zum Öffnen von Raw-Sockets zu ermöglichen (in der Vergangenheit wurde dazu lediglich das setuid-Bit im Ping-Programm gesetzt und zugelassen) um irgendetwas in seiner Programmierung als root zu tun).
Ich habe / sbin / ping unter macOS (High Sierra) angeschaut, und es sind keine derartigen Attribute festgelegt, und es ist auch keine setuid festgelegt. Was macht macOS, um Standardbenutzern (Nicht-Root-Benutzern) das Pingen zu ermöglichen? Senden sie ICMP-Pakete über TCP oder UDP? Wenn ja (oder wenn es einen anderen Mechanismus gibt, den ich nur ganz vermisse), können Sie mich auf einige Dokumente verweisen? Jede Hilfe wäre dankbar.