osx - 如何以编程方式删除具有提升权限的文件?

And*_*rei 4 macos objective-c elevated-privileges

我正在尝试从〜/ Library/PreferencePanes文件夹中删除文件,而这不能通过普通权限完成.通常,如果您需要删除〜/ Library文件夹中的任何文件,系统将询问您的用户名和密码.

我这样做的当前方式是

[[NSFileManager defaultManager] removeItemAtPath:filePath error:&error]

但这会继续返回错误([error localizedDescription]):

theAppName.prefPane couldn’t be removed because you don’t have permission to access it.

为了获得删除文件所需的这些提升权限,我需要使用哪些逻辑和代码?

谢谢!

Dee*_*olu 5

您应该阅读授权服务编程指南.你需要使用AuthorizationExecuteWithPrivileges.

  • 是的,谢谢.在您上面发布的"Here"链接之后,我设法创建了自己的代码,该代码使用"rm"工具删除文件,同时具有提升的权限.我在这里发布了代码:http://stackoverflow.com/questions/3588779/obtaining-admin-privileges-to-delete-files-using-rm-from-a-cocoa-app/6269915#6269915 (3认同)