【问题标题】:CFPreferences to /Library/PreferencesCFPreferences 到 /Library/Preferences
【发布时间】:2012-02-26 16:45:29
【问题描述】:

我在系统偏好设置中使用了一个 prefpane(带有授权锁)。我需要让我的偏好写信给/Library/Preferences。但是,每当我尝试将首选项同步到kCFPreferencesAnyUserkCFPreferencesCurrentHost 时,即使我的锁已解锁,它也会失败。有没有办法在不创建帮助应用程序的情况下将我的偏好写入/Library/Preferences?我想避免这种情况,因为它是多余的。

请注意,修改“任何用户”首选项需要 root 权限(或 Mac OS X v10.6 之前的管理员权限)—请参阅 Authorization Services Programming Guide.

我阅读了授权服务编程指南,它甚至没有提到偏好。

【问题讨论】:

    标签: objective-c c cocoa core-foundation cfpreferences


    【解决方案1】:

    CFPreferences 使用您进程的 euid 来确定“当前用户”的含义。您可以将您的 euid 设置为 0,但实际上不建议这样做,因为这意味着您的 整个程序 如果它包含漏洞,而不仅仅是一个微小的特定用途的漏洞,它现在可能是权限提升攻击的来源帮手。这对您的用户不利,进而对您不利。

    另外,XPC 和 seteuid() 并不总是很好,CFPreferences 使用 XPC。我相信,从 euid 0 切换到非 0 应该可以工作,但我不会指望另一个方向工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 1970-01-01
      • 2014-07-05
      • 2019-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多