我正在编写一个需要写入系统保护文件夹的应用程序,例如/ Applications。怎么做得好?试过这段代码,但这似乎不适用于没有管理员权限的帐户(出现密码提示)。
AuthorizationRef authorizationRef = NULL;
AuthorizationItem authItem = { "", 0, NULL, 0 };
AuthorizationRights authRights = { 1, &authItem };
AuthorizationFlags flags = kAuthorizationFlagDefaults |
kAuthorizationFlagInteractionAllowed |
kAuthorizationFlagPreAuthorize |
kAuthorizationFlagExtendRights;
OSStatus status = AuthorizationCreate(&authRights, kAuthorizationEmptyEnvironment, flags, &authorizationRef);
status = AuthorizationCopyRights(authorizationRef, &authRights, kAuthorizationEmptyEnvironment, flags, NULL);
if (status != errAuthorizationSuccess)
Logger::logErrorF("Unable to elevate permissions");
Poco::File file("/Applications/Test");
file.createDirectory();
AuthorizationFree(authorizationRef, flags);
我做错了什么?我不想为此创建任何帮助工具,只是想在必要时提升权利,做我想做的事情,然后降低权利。
另外,确定当前正在运行的进程是否具有管理员权限的最佳方法是什么?