J'ai une application (un démon dans/Library/StartupItems pour être précis) fonctionnant en tant que root qui lance parfois un autre processus en utilisant system("open /Applications/MyAppName.app")
. Cela fonctionne bien sauf que sur certains ordinateurs, MyAppName est lancé en tant que root, au lieu de sous l'utilisateur actuel.L'appel du système ("open <app name.app>") provoque parfois le lancement de l'application en tant que root
J'essaye de comprendre pourquoi c'est, et comment je peux obtenir l'application pour toujours lancer en tant qu'utilisateur actuel.
Le problème semble se produire sur les sites d'entreprise exécutant une combinaison de répertoire ouvert/actif. Comme j'ai un accès limité à ces machines, j'essaie de formuler au moins quelques hypothèses avant de demander plus de temps. L'autre indice que je possède est que sur au moins un de ces ordinateurs si vous ouvrez Activity Monitor et inspectez le processus "Finder", la section "User:" affiche le nom d'utilisateur mais pas d'utilisateur (le "(UID) "section est entièrement manquant).
En outre, le processus parent affiche "launchd (1)
" plutôt que "launchd (95)
" comme le font la plupart des applications standard. Cette instance de launchd, je crois, est la première chose à démarrer chaque fois que l'ordinateur est démarré et exécuté en tant que root, par rapport à l'autre instance de launchd qui s'exécute en tant qu'utilisateur connecté. En plus des problèmes de sécurité évidents, j'ai besoin que l'application ne s'exécute pas en tant qu'utilisateur root afin de prendre en charge des fonctionnalités telles que l'ouverture/la visibilité pour deux utilisateurs connectés simultanément.
Est-ce que quelqu'un a des idées sur ce qui pourrait être à l'origine de ce problème ou comment je pourrais y remédier?
Merci, c'est un peu d'aide. J'ai en effet basculé vers l'utilisation d'un démon d'agent utilisateur pour ma deuxième application. –