0

我有一对 launchd 守护进程,其中一个是真正的守护进程(以 root 身份运行),其中一个是基于 GUI 会话运行的 GUI 代理(会话类型 Aqua)。

我需要防止非管理员级别的用户使用launchctl禁用用户级别的代理,或者至少弄清楚如何从根级别的守护进程重新加载代理。

到目前为止我发现的最好的文章是这篇文章但它并没有真正提供任何明确的解决方案。

最简单的方法似乎是在根守护程序中定期获取当前控制台用户,然后launchctl load ...以该用户身份运行,但我不完全是否可能/我将如何解决这个问题(如果我只是从daemon 不冒充用户,会在 root 用户下加载,这样不好)。

有任何想法吗?

4

1 回答 1

0

您可以在 SIGTERM 处理程序中检查授权,请参阅http://developer.apple.com/mac/library/technotes/tn2002/tn2095.html以获取示例自定义授权检查

于 2009-12-06T22:29:08.993 回答