On Jun 13, 2010, at 9:24 AM, Pierre Fournier wrote:

> Hi,I want to log something in a file at /private/var/log, using 
> NSFileHandle.With the app launched as root, everything runs ok using 
> [NSFileHandle fileHandleForWritingToURL:url error:&err]. I get a valid handle 
> and can write what I want to.
> With the app launched as non-root user, I create an Authorization using 
> AuthorizationCreate(), with following flags:m_AuthFlags = 
> kAuthorizationFlagDefaults | kAuthorizationFlagInteractionAllowed | 
> kAuthorizationFlagExtendRights;
> and further use it using AuthorizationCopyRights(m_AuthRef, &m_AuthRights, 
> NULL, m_AuthFlags, NULL)), which returns errAuthorizationSuccess.However, the 
> call of [NSFileHandle fileHandleForWritingToURL:url error:&err] throws the 
> Cocoa Error 13 (Permission Denied).It seems that although having set 
> kAuthorizationFlagExtendRights, I am still not allowed to open and write this 
> file located at /private/var/log.Am I doing something wrong here, to cause 
> such permission denial?Thx.

AuthorizationCopyRights() does not elevate a task's privileges. If you need 
root privileges to do something, then you need to do it in a child task, 
because there is no way to elevate a running task's privileges, and GUI apps 
are not allowed to run with root privileges anymore. See the 
BetterAuthorizationSample sample code for details.

Nick Zitzmann
<http://www.chronosnet.com/>

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to