Es ist normal für Mac OS X. Früher war es auf fast allen Unix-OID-Systemen normal. Es läuft als root ohne sudo, da die ps- Binärdatei set-uid als root ausgeführt wird (zB auf meinem 10.4-System):
% ls -l $(which ps) -rwsr-xr-x 1 root wheel 31932 Mar 20 2005 /bin/ps
(die s
Stelle des Benutzer-Inhabersx
Spalte bedeutet, dass es sich um set-uid (und vom Benutzer ausführbare Datei handelt), der Eigentümer root ist; dies bedeutet, dass er unabhängig davon, wer sie ausführt, als root ausgeführt wird.)
Normalerweise muss Mac OS X als Root ausgeführt werden, da die benötigten Informationen nur über über Root zugreifbare Geräte (z. B. / dev / kmem) oder Root-Only-Systemaufrufe verfügbar sind. Dies ist in Ordnung, da das ps- Programm (sofern keine Fehler in der Implementierung vorhanden sind) so geschrieben wurde, dass Anrufer keine Informationen erhalten, die sie sonst nicht haben sollten.
Andere Systeme verfügen über andere Mechanismen, die den Zugriff auf die Informationen ermöglichen, die von ps benötigt werden, und daher keine set-uid- ps- Binärdateien benötigen . Insbesondere das virtuelle Dateisystem / proc auf Linux-Systemen (und anderen) kann sehr feinkörnige Kernelinformationen mit ebenso fein abgestuften Berechtigungen veröffentlichen. Ein solches Modell reicht aus, um es einem nicht privilegierten ps zu ermöglichen, alles zu erhalten, was es benötigt, ohne Zugriff auf die sensibleren Bits der Kernelinformationen zuzulassen.