我在系统偏好设置中使用了 prefpane(带有授权锁)。我需要了解我的偏好并写信给/Library/Preferences
。但是,每当我尝试将首选项同步到kCFPreferencesAnyUser
and kCFPreferencesCurrentHost
即使我的锁已解锁,它也会失败。有什么办法可以写下我的偏好/Library/Preferences
无需创建帮助应用程序?我想避免这种情况,因为它是多余的。
请注意,要修改“任何用户”首选项,需要 root 权限(或 Mac OS X v10.6 之前的管理员权限)—请参阅授权服务编程指南。 https://developer.apple.com/library/mac/documentation/Security/Conceptual/authorization_concepts/01introduction/introduction.html#//apple_ref/doc/uid/TP30000995
我阅读了授权服务编程指南,它甚至没有提到偏好。
CFPreferences 使用进程的 euid 来确定“当前用户”的含义。您可以将 euid 设置为 0,但这确实不推荐,因为这意味着您的整个节目如果它包含漏洞,而不仅仅是一个微小的特定用途帮助程序,那么它现在可能是权限升级攻击的来源。这对您的用户不利,进而对您也不利。
另外,XPC 和 seteuid() 并不总是能很好地发挥作用,CFPreferences 使用 XPC。我相信,从 euid 0 切换到非 0 应该可行,但我不会指望另一个方向有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)