繁体   English   中英

在Cocoa和Objective-C中使用sudo命令?

[英]Using sudo commands in Cocoa and Objective-C?

在Objective-C / Cocoa中运行类似$sudo touch folder_name$sudo rm的正确方法是什么? 我正在改变并移动几个文件,需要提升权限。 任何代码示例将不胜感激。 谢谢。

一种方法是使用AuthorizationExecuteWithPrivileges() ,但是对于正常的过程不鼓励这样做。 我收集的主要是安装人员。

就像是:

AuthorizationRef auth = NULL;
OSStatus err = AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagInteractionAllowed, &auth);
err = AuthorizationExecuteWithPrivileges(auth, command, kAuthorizationFlagDefaults, args, NULL);

并添加适当的err检查...

请参阅授权文档。

有几种方法可以做到这一点。 您选择哪一个取决于您想要做什么。 最简单和最不安全的方法是简单地在您从代码调用的额外帮助工具上设置s-bit,并执行需要管理员权限的操作。 查看BetterAuthorizationSample ,了解执行特权代码的最复杂和最复杂的方法。

授权服务编程指南为您提供所需的一切。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM