Sto cercando di capire come avviare un'applicazione GUI come un altro utente che ha effettuato l'accesso interattivo, nella sessione grafica dell'utente.
Ad esempio, dire che ho due utenti, foo e bar. Entrambi sono collegati, ma l'utente interattivo attuale è foo. Vorrei avviare Calculator.app come utente "bar", in modo che quando l'utente veloce passa alla barra, trovo la finestra della Calcolatrice aperta nella sessione della barra.
Ecco cosa ho provato che non funziona:
sudo -u bar /Applications/Calculator.app/Contents/MacOS/Calculator
Questo avvia Calculator.app come barra, ma la finestra si apre nella sessione grafica di foo.
sudo -u bar osascript -e "tell application \"Calculator\" to activate"
Stesso effetto.
sudo -u bar open "/Applications/Calculator.app"
Avvia Calcolatrice come pippo, non barra.
launchctl asuser [uid of bar] [any of the above commands]
Stesso effetto.
C'è un modo per farlo? Sono disposto a intrattenere tutti i tipi di soluzioni possibili, inclusi script di bash, AppleScript, scrivere un programma Core Foundation o Cocoa e così via. Nella mia situazione, qualsiasi programma o script può essere eseguito come qualsiasi utente, incluso root.
Nota: sono consapevole che è possibile utilizzare eventi Apple remoti, ma non posso utilizzarlo poiché nella situazione in cui sto cercando di farlo non ho alcuna garanzia che "Remote Apple Events" sarà abilitato in Condivisione preferenze.
Qualsiasi aiuto sarebbe molto apprezzato!