Wie kann ich feststellen, ob eine App unter Mac OS X als "Öffnen" geöffnet wurde?

0

Wie kann ich unter OS X feststellen, ob eine über den Befehl Öffnen gestartete App mit erhöhten Berechtigungen gestartet wurde?

Ich habe es als Beispiel versucht sudo open http://www.google.com/, aber der Aktivitätsmonitor scheint keine Informationen anzuzeigen, die darauf hinweisen, dass der Safari-Prozess als Root ausgeführt wird.

Nathan Moinvaziri
quelle
Was möchtest du erreichen? Es gibt einen Grund, warum Browser eine Sandbox erhalten (besonders niedriger Berechtigungen), das Ausführen als root ist normalerweise nicht etwas, das Sie wollen ...
Daniel Beck
Mein Beitrag wurde bearbeitet. Ich brauche keinen Browser, um mit root-Berechtigungen geöffnet zu werden. Ich brauche einen Weg, um festzustellen, ob eine open Befehl wurde mit Root-Berechtigungen in OS X gestartet.
Nathan Moinvaziri
Und warum brauchst du einen Weg, um zu wissen, ob eine open Befehl wurde mit Root-Berechtigungen gestartet? Was bist du Ja wirklich versuchen zu tun? In den meisten Fällen ist es nur so, dass Sie gefragt werden tatsächlich Frage gibt Ihnen bessere Antworten. Darauf wollte ich hinweisen.
slhck
Wir müssen sicherstellen, dass die Software mit den richtigen Berechtigungen geöffnet wird.
Nathan Moinvaziri

Antworten:

3

(Hinzufügen einer zweiten Antwort auf die geklärte Frage)

Wenn du benutzt hast sudo open http://google.com, das System lief open als Wurzel, aber open ist wirklich nur ein Kunde für MacOS LaunchServices . welches noch als angemeldeter Benutzer läuft.

Tatsächlich zeigt Ihnen der Aktivitätsmonitor, dass die Safari-Instanz geöffnet wurde durch sudo open http:/google.com ist nicht als root laufen, als "User" Spalte zeigt Ihren Benutzernamen, nicht root.

Sie können Safari jedoch auch direkt über die Befehlszeile mit aufrufen Sudo, Umgehung der Startdienste:

$ sudo /Applications/Safari.app/Contents/MacOS/Safari http://google.com

Jetzt können Sie im Aktivitätsmonitor bestätigen, dass es als ausgeführt wird root.

ckhan
quelle
Vielen Dank, dies ist die Antwort, nach der ich gesucht habe: "Das System wurde als root geöffnet, aber open ist nur ein Client für Mac OS LaunchServices, der immer noch als angemeldeter Benutzer ausgeführt wird."
Nathan Moinvaziri
0

Ich gehe davon aus, dass Sie "als Wurzel laufen" meinen. Beachten Sie, dass nur, wenn Sie als Root ausgeführt werden, nicht die höchste Priorität ausgeführt wird. auch nicht mit der sudo Befehl bedeutet notwendigerweise, dass der Prozess als Root ausgeführt wird.

Versuchen Sie dies jedoch an einer Terminal-Eingabeaufforderung:

$ ps aux | grep ^root

Um die Prozessliste nach denjenigen zu filtern, die als root ausgeführt werden. Oder sogar (abhängig von Ihrer Version von Mac OS):

$ ps -u root
ckhan
quelle
Ich denke, das Problem könnte das sein, wenn ich starte sudo -u root open http://www.google.com/, der Browser wird nicht unter dem root-Benutzer geöffnet und ich bin mir nicht sicher, warum nicht.
Nathan Moinvaziri
@ NathanMoinvaziri Vielleicht möchten Sie nur nach Ihrem eigentlichen Problem fragen, anstatt nach Ihrer Lösung. Warum fragst du nicht eigentlich, wie ... was immer du willst? Warum benötigen Sie einen Browser, der mit root-Berechtigungen geöffnet werden muss? Dies wird Ihnen höchstwahrscheinlich bessere Antworten geben und Ihre Lösung tatsächlich lösen echt Problem.
slhck
Ich habe nie einen Lösungsversuch gepostet, daher bin ich mir nicht sicher, wovon Sie sprechen. Ich möchte keinen Browser als root ausführen. Ich möchte wissen, warum der Befehl nicht wie erwartet funktioniert hat.
Nathan Moinvaziri
Fühlen Sie sich frei, diese Antwort zu löschen, wenn sie nicht mehr relevant ist. Übrigens: Sie können Ihre Antwort jederzeit bearbeiten - auch wenn der Inhalt dadurch radikal geändert wird.
slhck
0

Um ein Protokoll der Prozesse anzuzeigen, die mit ausgeführt wurden sudo Sie können grep das system.log:

$ grep sudo /var/log/system.log

Sie können auch die Konsolenanwendung verwenden. Wählen Sie "system.log" aus der Protokollliste und geben Sie "sudo" in die Suchleiste ein.

audiomason
quelle