J'ai un scénario où j'ai besoin d'exécuter des applications graphiques d'autres utilisateurs à partir de la shell sur l'écran actuellement actif. En d'autres termes, je suis connecté en tant qu'utilisateur "A" et dans le Terminal je fais su
à l'utilisateur "B" et j'ai besoin d'exécuter TextEdit.app en tant qu'utilisateur "B" sur l'écran graphique de l'utilisateur A.
Actuellement, si je démarre (sous Catalina) /Sys/System/Applications/TextEdit.app/Contents/MacOS/TextEdit
je vois ce qui suit dans le Terminal :
TextEdit[26292:293814] +[NSXPCSharedListener endpointForReply:withListenerName:]: une erreur s'est produite lors de la tentative d'obtention du point de terminaison pour l'auditeur 'ClientCallsAuxiliary': Connexion interrompue
TextEdit[26292:293831] La connexion au serveur de vérification orthographique a été invalide
TextEdit[26292:293792] Dans -[NSApplication(NSQuietSafeQuit) _updateCanQuitQuietlyAndSafely], _LSSetApplicationInformationItem(NSCanQuitQuietlyAndSafely) a renvoyé une erreur -600
Et bien que TextEdit s'affiche à l'écran, je ne peux pas obtenir les entrées de la barre de menus pour cela ou enregistrer des fichiers, etc.
Un comportement similaire se produit avec toutes les applications que j'essaie, telles que TextMate.app. J'ai toujours l'impression d'obtenir cette erreur :
TextMate[26365:295425] +[NSXPCSharedListener endpointForReply:withListenerName:]: une erreur s'est produite lors de la tentative d'obtention du point de terminaison pour l'auditeur 'ClientCallsAuxiliary': Connexion interrompue
Y a-t-il un moyen de contourner cela ?
0 votes
Cela ne fonctionnera que pour les applications X11
1 votes
@nohillside J'ai vraiment eu du mal à formuler cela correctement et bien que je comprenne que
AFFICHAGE
en tant que tel ne fonctionnera pas, je ne peux m'empêcher de me demander s'il existe un autre mécanisme pour aider les applications à utiliser la session d'affichage / wm d'un autre utilisateur, etc. - quelle que soit la terminologie appropriée sur macOS.0 votes
X11 & DISPLAY ne jouent aucun rôle ici, macOS n'est pas Linux. Pour réécrire la question, il suffit de laisser de côté les détails techniques et de demander comment exécuter des applications GUI à partir du Terminal après avoir utilisé su/sudo.
0 votes
Ce n'est pas suffisant car cela n'explique pas l'objectif. Exécuter des applications à partir de l'interface de ligne de commande est facile, mais exécuter en tant qu'un utilisateur différent est un défi et donc cette reformulation n'est pas suffisante pour le transmettre.
0 votes
"... après avoir utilisé su/sudo pour passer à un autre utilisateur". Bien sûr, reformulez de manière à ce que cela ait du sens pour vous, mais comme je l'ai dit : X11 ne joue aucun rôle dans cela.
0 votes
En réalité, la réponse acceptée pour apple.stackexchange.com/questions/25907/… semble toujours fonctionner sous Big Sur.