Ich versuche herauszufinden, wie eine GUI-Anwendung als ein anderer Benutzer gestartet wird, der interaktiv in der grafischen Sitzung dieses Benutzers angemeldet ist.
Angenommen, ich habe zwei Benutzer, foo und bar. Beide sind angemeldet, aber der aktuelle interaktive Benutzer ist foo. Ich möchte Calculator.app als Benutzer "bar" starten, damit das Fenster "Calculator" in der Sitzung der Leiste geöffnet ist, wenn der Benutzer schnell zur Leiste wechselt.
Folgendes habe ich versucht, was nicht funktioniert:
sudo -u bar /Applications/Calculator.app/Contents/MacOS/Calculator
Dadurch wird Calculator.app als Leiste gestartet, das Fenster wird jedoch in der grafischen Sitzung von foo geöffnet.
sudo -u bar osascript -e "tell application \"Calculator\" to activate"
Gleicher Effekt.
sudo -u bar open "/Applications/Calculator.app"
Startet den Rechner als foo, nicht als bar.
launchctl asuser [uid of bar] [any of the above commands]
Gleicher Effekt.
Gibt es eine Möglichkeit, dies zu erreichen? Ich bin bereit, alle möglichen Lösungen in Betracht zu ziehen, einschließlich Bash-Scripting, AppleScript, Schreiben eines Core Foundation- oder Cocoa-Programms und so weiter. In meiner Situation könnte jedes Programm oder Skript als jeder Benutzer ausgeführt werden, einschließlich root.
Hinweis: Ich bin mir bewusst, dass es möglich ist, Remote-Apple-Ereignisse zu verwenden, aber ich kann dies nicht verwenden, da ich in der Situation, in der ich dies versuche, keine Garantie dafür habe, dass "Remote-Apple-Ereignisse" in den Freigabeeinstellungen aktiviert werden.
Jede Hilfe wäre sehr dankbar!
open
Befehl mit ausprobiertSSH
?