Warum ist der gemeldete Benutzer "root", wenn ein "normaler Benutzer" "ps ux" unter OS X ausführt? Ist das normal?

709
snies

Ich verwende OS X 10.6.1. Wenn ich als normaler Benutzer des Gruppenpersonals angemeldet bin und ein

ps ux 

es listet meinen ps ux-Befehl als von root ausgeführt auf:

snies 181 0.0 0.3 2774328 12500 ?? S 6:00PM 0:20.96 /System/Library... root 1673 0.0 0.0 2434788 508 s001 R+ 8:16AM 0:00.00 ps ux snies 177 0.0 0.0 2457208 984 ?? Ss 6:00PM 0:00.52 /sbin/launchd snies 1638 0.0 0.0 2435468 1064 s001 S 8:13AM 0:00.03 -bash 

Ist das normal? Und wenn ja warum? Bitte beachten Sie, dass der Benutzer kein Administratorkonto ist und kein Sudo kann.

3
Jemand mit 10.5 und früher? War es schon immer so? Thilo vor 14 Jahren 0

1 Antwort auf die Frage

10
Chris Johnsen

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 sStelle 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.