Ist es möglich, Software unter OS X Mountain Lion als anderer Benutzer auszuführen?


4

Ich habe versucht, Apps als anderer Benutzer auszuführen.

Versuch 1
sudo -u otheruser open /Applications/TextEdit.app startet die App, verwendet jedoch den aktuellen Benutzer und nicht einen anderen Benutzer .

Bei Versuch 2
login username und su - otherusererfolgreicher Anmeldung als anderer Benutzer wird der andere Benutzer im Aktivitätsmonitor angezeigt , aber in etwa wird open /Applications/TextEdit.appder Fehler zurückgegebenLSOpenURLsWithRole() failed with error -10810 for the file /Applications/TextEdit.app.

Versuch 3
sudo su - otheruser -c /Applications/TextEdit.app/Contents/MacOS/TextEdit scheint die App zu starten (sie wird unter Aktivitätsmonitor als von einem anderen Benutzer gestartet angezeigt ), aber dieser Fehler wird angezeigt, während das Dock-Symbol auf unbestimmte Zeit abprallt:_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.

Frage
Also… wie starte ich eine App als anderer Benutzer?

Antworten:


1

Die Antworten auf diese Frage scheinen auf 10.8 Mountain Lion für mich nicht ganz richtig zu sein. Ich denke, Demure hat einen Tippfehler bei Punkt 2, es muss etwas anderes als das "-" geben. Was bei mir funktioniert: Dein Versuch 3, ohne suund -c.

sudo -u testuser /Applications/TextEdit.app/Contents/MacOS/TextEdit

Dies öffnet TextEdit als Testbenutzer und ich könnte eine Datei speichern /. Das Speichern in den Benutzerordner von testuser hat nicht funktioniert, aber das könnte daran liegen, dass ich diesem Konto überhaupt nur sehr wenige Rechte gegeben habe, da ich es für andere Testzwecke verwende. Interessanterweise konnte ich mich auch als root anmelden, obwohl ich den root-Benutzer in KeyChain.app deaktiviert habe. Dies scheint nur die Desktop-Anmeldung von Root aus zu betreffen, nicht die Terminal-Anmeldung. Die Datei, die ich als Testbenutzer gespeichert habe, hatte die richtigen Eigentumsrechte usw. eingestellt.

$ cd /
$ ls -la | grep testuser
-rw-r--r--    1 testuser  staff      330 18 Okt 20:07 Untitled.rtf

Super, das funktioniert! Die Verwendung ist etwas schwieriger, da ich die ausführbare Datei suchen muss, aber auf diese Weise kann ich Photoshop tatsächlich starten und verwenden - was in meinem Konto aus irgendeinem Grund auch nach einer vollständigen Neuinstallation von und nicht funktioniert Einstellungen bereinigen.
Fregante

1

Normalerweise funktioniert das Ausführen einer GUI-App als ein anderer Benutzer (mit Ausnahme einiger Fälle von GUI-Software, die für root entwickelt wurde) nicht wirklich.

Das hat früher funktioniert, ich bin mir nicht sicher, ob es auf aktuellen Macs noch funktioniert. Wörtlich:

Dies ist ein Hinweis, den ich aus dem Kommentarbereich eines anderen Hinweises über Apache erhalten habe (glaube ich). Auf diese Weise können Sie ein Programm innerhalb der Beschränkungen eines anderen Benutzers halten, ohne dass dieser Benutzer über die GUI angemeldet ist. Führe ein verdächtiges Programm in einer Blase aus! Ich würde empfehlen, ein Dummy-Konto mit sehr eingeschränktem Zugriff einzurichten, wenn Sie eine "Blase" erstellen möchten. Hinweis: Ich bezeichne das nachfolgende Konto als "Blasenkonto" und die Sitzung dieses Kontos als "Blase", um Ihnen die richtige Vorstellung davon zu geben.

  1. Öffnen Sie ein neues Terminalfenster
  2. Geben Sie Folgendes ein, wobei short_nameder Kurzname des "Bubble" -Kontos ist:sudo short_name -
  3. Geben Sie das Passwort für das Konto "bubble" ein.
  4. Geben Sie Folgendes ein, wobei app_nameder Name der App ist, die Sie öffnen möchten: /Applications/app_name.app/Contents/MacOS/app_name
    Dies würde beispielsweise Safari starten:
    /Applications/Safari.app/Contents/MacOS/Safari

Ein paar Dinge zu beachten ( sehr wichtig! ):

  • Das Kopieren und Einfügen zwischen dieser und anderen Apps funktioniert nur, wenn sich auch die anderen in der Sprechblase befinden.
  • Apps, die innerhalb der Blase ausgeführt werden, können nachfolgende Anwendungen weiterhin unter dem ursprünglichen Konto starten (soweit ich das beurteilen kann). Wenn Sie beispielsweise ftp://in Safari zu einer URL wechseln, während sich diese in der Sprechblase befindet, wird der Finder im Nicht-Sprechblasen-Konto mit allen verfügbaren Berechtigungen ausgeführt.
  • Durch Schließen des Terminals (oder Drücken von Strg + C im Fenster) wird die App geschlossen, die in der Sprechblase ausgeführt wird. Viele Programme zeigen Ausnahmen und seltsame Meldungen im Terminal zu verschiedenen Zeiten an, während das Programm ausgeführt wird. Wenn Sie zuvor programmiert haben, wissen Sie, dass dies völlig normal ist und erwartet wird.
  • Die in der Sprechblase ausgeführten Programme haben möglicherweise andere Darstellungseinstellungen als die, die Sie sonst ausführen würden. Um dies zu ändern, melden Sie sich unter dem Bubble-Konto an und rufen Sie die Systemeinstellungen auf
  • Das Ausführen von zwei Kopien eines Programms (eine innerhalb und eine außerhalb der Sprechblase) funktioniert absolut einwandfrei. Tatsächlich schreibe ich dies gerade auf meiner "gesprudelten" Safari-App!
  • Einige Probleme können auftreten, z. B., dass Sie Safari nicht per Drag & Drop verwenden können. Problemumgehung * Dies scheint keine Einstellungen für das Bubble-Konto als Dateitresor zu speichern, wenn der Benutzer nicht im Hintergrund angemeldet ist.

Und noch eine Hack-ish-Methode. Die beiden folgenden Beispiele beziehen sich jedoch auf X11-Apps

sudo -i -u other_user \`  
  env DISPLAY="$DISPLAY" XAUTHORITY="${XAUTHORITY-$HOME/.Xauthority}" \`  
  xapplication`  

oder

xauth extract -f - "$DISPLAY" |`  
sudo -u other_user xauth -f ~other_user/.Xauthority merge -`

Bitte füge die grundlegenden Schritte deiner Vorschläge in deine Antwort ein, die Links sterben.
Terdon

@terdon Würden Sie empfehlen, die Informationen zu serverfault.com auch wörtlich anzugeben?
demure

Nicht unbedingt wörtlich, es ist nur die Richtlinie im SE-Netzwerk, zumindest die grundlegenden Schritte bereitzustellen, anstatt einen externen Link. Sehen Sie hier für eine Diskussion. Grundsätzlich erwarten wir Antworten auf sein , um Antworten nicht Links , wo eine Antwort gefunden werden könnte.
Terdon

sudo short_name -sagt short_name: command not found( short_namewurde durch den Benutzernamen ersetzt). Ich weiß nichts über X11-Apps und verwende keine.
Fregante

1

Nur für den Fall, dass noch jemand nach einer Möglichkeit sucht, habe ich diese App gefunden:

RUN AS http://josephbeeson.com/index.php?page=proj_en

Das funktioniert bei mir. (Test mit der Box.com Sync App im Moment)


Süss! Das funktioniert tatsächlich (in OS X 10.8)! Ich habe es mit TextEdit versucht und es zeigt sogar die Startseite des anderen Benutzers im Öffnen / Speichern-Dialog. Danke und willkommen bei StackExchange :)
fregante

1
Link ist tot. Funktioniert das noch
Jason

0

Verwenden Sie opendiese Option , um eine Anwendung zu starten.

Beispiele

-a Option - Dateiname mit der Anwendung TextWrangler öffnen-:

 sudo su - david  -c "open -a TextWrangler filename"

-e Option - öffne meinen Dateinamen mit der Anwendung TextEdit-:

sudo su - user  -c "open -e myfilename"

1
Dies unterscheidet sich nicht von meinem dritten Versuch, ich bekomme immer noch den FehlerLSOpenURLsWithRole() failed for the application /Applications/TextEdit.app with error -10810.
fregante
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.