如何读取/写入/库/ MAC日志

时间:2013-08-07 06:46:43

标签: macos file-permissions nsfilemanager

我想在Mac应用程序的/ Libary / Logs中创建一个文件。

我使用以下代码,

NSError *error = nil;
NSFileManager *fm = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSLocalDomainMask, YES);
NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Logs"];
//path = [path stringByAppendingPathComponent:@"e315Updater"];

if ( ![fm fileExistsAtPath:path] )
{
    BOOL sucess = [fm createDirectoryAtPath:path
 withIntermediateDirectories:YES
                  attributes:nil
                       error:&error];

    NSLog(@"Success value = %d",sucess);
    if ( error ){
        NSLog(@"Err = %@",[error description]);
    }
}

由于权限问题而导致失败,因为每个用户都没有对此目录的读/写权限。

我还尝试使用NSFilePosixPermissions在/ Libary / Logs目录上设置权限,但它也很容易设置读/写权限。

所以我需要帮助弄清楚'如何在主磁盘的库/日志内创建和读/写文件而不是用户库'

1 个答案:

答案 0 :(得分:0)

OS X权限模型不允许普通用户写入大多数系统目录,包括/ Library / Logs。如果您找到解决方法,您发现了一个安全漏洞,需要修复它(然后您的应用程序将失败);如果您更改权限(您可以执行此操作,如果您首先提升权限),那么您将破坏OS X安全模型,这是非常糟糕的主意

我建议不要尝试直接写入您自己的私人日志,而是通过NSLog或者可能是其中一个较低级别的接口ASL or syslog来浏览系统日志记录工具。你不会得到自己的私人日志文件,但它实际上会有效。