【发布时间】:2012-07-11 12:11:42
【问题描述】:
我想创建使用管理员密码在 bash 中运行一些脚本的应用程序。例如:
echo **pass** | sudo -S reboot
获得它的最佳方法是什么。
我看了this 教程,我都明白了——它是如何运行授权窗口。
AuthorizationRef authRef= NULL;
AuthorizationItem right = { "com.my.app", 0, NULL, 0 };
AuthorizationRights rightSet = { 1, &right };
OSStatus status;
if (AuthorizationCreate(
NULL,
kAuthorizationEmptyEnvironment,
kAuthorizationFlagDefaults,
&authRef) != errAuthorizationSuccess)
{
NSLog(@"Could not create authorization reference object.");
}
status = AuthorizationCopyRights(authRef, &rightSet, kAuthorizationEmptyEnvironment,
kAuthorizationFlagDefaults |
kAuthorizationFlagPreAuthorize |
kAuthorizationFlagInteractionAllowed |
kAuthorizationFlagExtendRights,
NULL);
有没有办法在这些步骤之后获取密码?
或者所有这些都是错误的——并且以另一种方式存在?
谢谢!
【问题讨论】:
-
不,当然授权 API 不会给你用户密码。那将是非常愚蠢的。
-
我理解正确吗 - 要在 shell 中执行一些命令,我应该创建第二个应用程序,它会做到这一点,我的第一个应用程序应该调用第二个应用程序的权限,它是从授权 API 获得的?在这种情况下,命令将从管理员权限执行?
标签: macos cocoa security xcode4