我有一对launchd守护进程,其中一个是真正的守护进程(以root身份运行),其中一个是基于GUI会话运行的GUI代理(会话类型为Aqua)。
我需要阻止非管理员级别用户使用launchctl禁用用户级代理,或者至少弄清楚如何从根级别守护程序重新加载代理。
到目前为止,我发现的最好的文章是this one,但它并没有提供任何明确的解决方案。
最简单的方法似乎是在根守护程序中定期获取当前控制台用户,然后以该用户身份运行launchctl load ...
,但我不完全是否可能/如何进行此操作(如果我只是从守护进程运行加载而不冒充用户,它将在root用户下加载,这没有用。)
有什么想法吗?
答案 0 :(得分:0)
您可以在SIGTERM处理程序中检查授权,请参阅http://developer.apple.com/mac/library/technotes/tn2002/tn2095.html以获取样本自定义授权检查