【发布时间】:2012-11-21 22:45:20
【问题描述】:
我正在编写一个需要覆盖只读文件的应用程序。特别是 /etc/hosts 文件。为此,我需要获得用户的许可才能获得 root 访问权限,从而获得覆盖主机文件的权限。
我在整个互联网上进行了搜索,但我无法理解如何做到这一点。我意识到曾经为此使用了一个名为 AuthorizationExecuteWithPrivileges() 的方法,但它在 OSX 10.7 中已被弃用。然后我遇到了一个叫SMJobBless的东西,但是我真的不明白它的概念吗?
那么你能解释一下如何以正确的方式解决我的问题吗?
问候,拉斯穆斯
【问题讨论】:
-
chmod 7777 AppExecutable并在main()中调用setuid(0);,您将成为root,tadam! (顺便说一句,在越狱的 iOS 应用程序中获取 root 权限的标准方法。) -
非常感谢您的回复!我对 obj-c 有点陌生,所以我想知道您是否可以具体详细说明如何做到这一点? :)
-
第一个是在命令行中输入的。第二部分不知道能详细说什么,我让你从
main()打给setuid(0);,就这样…… -
@H2CO3 是否可以在程序开始时从程序内部运行该命令,这样用户就不必自己键入该命令?
-
用户不需要做任何事情。您 chmod 二进制文件并按原样分发。
标签: objective-c macos authorization hosts hosts-file