我有一对 launchd 守护进程,其中一个是真正的守护进程(以 root 身份运行),其中一个是基于 GUI 会话运行的 GUI 代理(会话类型 Aqua)。
我需要防止非管理员级别的用户使用launchctl禁用用户级别的代理,或者至少弄清楚如何从根级别的守护进程重新加载代理。
到目前为止我发现的最好的文章是这篇文章,但它并没有真正提供任何明确的解决方案。
最简单的方法似乎是在根守护程序中定期获取当前控制台用户,然后launchctl load ...
以该用户身份运行,但我不完全是否可能/我将如何解决这个问题(如果我只是从daemon 不冒充用户,会在 root 用户下加载,这样不好)。
有任何想法吗?