Je voudrais exécuter un script en tant qu'utilisateur particulier au démarrage (pas à la connexion). Je pensais qu'un launchd LaunchDaemon le ferait, mais 'man launchd' dit :
"Si vous souhaitez que votre service s'exécute en tant qu'utilisateur, dans l'environnement de cet utilisateur, en faire un agent launchd est le SEUL moyen supporté pour y parvenir sous Mac OS X. En d'autres termes, il n'est pas suffisant d'exécuter un setuid(2) pour devenir un utilisateur au sens propre sous Mac OS X".
Ils ne plaisantent pas - lorsque j'essaie d'exécuter mon script en tant que LaunchDaemon, cela ne fonctionne pas. En particulier, j'essaie d'automatiser certaines opérations de trousseau de clés en utilisant la commande 'security', et il ne me laisse pas changer le trousseau de clés par défaut lorsque j'exécute le script via LaunchDaemon, bien que le script fonctionne bien lorsqu'il est exécuté en utilisant sudo à partir d'un script.
Un LaunchAgent ne fonctionnera pas, car le but est que le processus s'exécute sans qu'un utilisateur se connecte et les LaunchAgents ne s'exécutent que lorsque quelqu'un se connecte. J'ai regardé cron et la directive @reboot et cela semble prometteur, mais j'ai lu que cron est déprécié sous OSX.