在 Objective-C/Cocoa中运行类似$sudo touch folder_name
或从内部运行的正确方法是什么?$sudo rm
我正在更改和移动一些文件,并且需要提升权限。任何代码示例将不胜感激。谢谢。
问问题
4714 次
2 回答
12
一种方法是AuthorizationExecuteWithPrivileges()
,但这对于正常的事情是不鼓励的。我收集主要是为安装人员准备的。
就像是:
AuthorizationRef auth = NULL;
OSStatus err = AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagInteractionAllowed, &auth);
err = AuthorizationExecuteWithPrivileges(auth, command, kAuthorizationFlagDefaults, args, NULL);
并添加适当的检查err
...
请参阅授权文档。
于 2010-01-23T00:58:50.223 回答
2
有几种方法可以做到这一点。你选择哪一个取决于你想做什么。最简单和最不安全的方法是在一个额外的帮助工具上简单地设置 s 位,您可以从代码中调用该工具并执行需要管理员权限的操作。查看BetterAuthorizationSample,了解执行特权代码的最奇特和最复杂的方式。
授权服务编程指南为您提供所需的一切。
于 2010-01-23T01:42:37.807 回答