如何保护每个用户GUI启动代理免受非管理员用户的禁用?

时间:2009-07-09 00:57:27

标签: cocoa security launchd launchdagent

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

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

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

最简单的方法似乎是在根守护程序中定期获取当前控制台用户,然后以该用户身份运行launchctl load ...,但我不完全是否可能/如何进行此操作(如果我只是从守护进程运行加载而不冒充用户,它将在root用户下加载,这没有用。)

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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