Sto cercando di capire come avviare un'applicazione GUI come un altro utente che ha effettuato l'accesso interattivo, nella sessione grafica di quell'utente.
Ad esempio, supponiamo che io abbia due utenti, foo e bar. Entrambi sono connessi, ma l'attuale utente interattivo è foo. Vorrei lanciare Calculator.app come "barra" dell'utente, in modo che quando passo velocemente l'utente alla barra, trovo che la finestra Calcolatrice sia 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 la calcolatrice come foo, non bar.
launchctl asuser [uid of bar] [any of the above commands]
Stesso effetto.
C'è un modo per raggiungere questo obiettivo? Sono disposto ad intrattenere qualsiasi tipo di soluzione possibile, inclusi script bash, AppleScript, scrittura di un programma Core Foundation o Cocoa e così via. Nella mia situazione, qualsiasi programma o script potrebbe essere eseguito come qualsiasi utente, incluso root.
Nota: sono consapevole che è possibile utilizzare Apple Event remoti, ma non posso utilizzarlo poiché nella situazione sto provando a farlo non ho alcuna garanzia che "Remote Apple Events" sarà abilitato nelle preferenze di condivisione.
Qualsiasi aiuto sarebbe molto apprezzato!
open
comando, usandoSSH
?