Невозможно создать новый каталог с помощью NSFileManager с владельцем как "root"

Назначение NSFileOwnerAccountName и NSFileGroupOwnerAccountName не работает? В каталоге, созданном по умолчанию, используется моя учетная запись coderama и staff группы.

NSFileManager *fileManager = [NSFileManager defaultManager];
NSMutableDictionary *attr = [NSMutableDictionary dictionary]; 
[attr setObject:@"root" forKey:NSFileOwnerAccountName];
[attr setObject:@"wheel" forKey:NSFileGroupOwnerAccountName]; 
[attr setObject:[NSNumber numberWithInt:0755] forKey:NSFilePosixPermissions];

[fileManager createDirectoryAtPath:dir withIntermediateDirectories:TRUE attributes:attr error:&error];
1 ответ

Очень вероятно, что без разрешения вы не сможете создать что-либо, принадлежащее root. Однако, если у вас есть авторизация...

Документы не упоминают это ограничение специально для createDirectoryAtPath:withIntermediateDirectories:attributes: но для связанного метода setAttributes:ofItemAtPath:error: вы не можете использовать NSFileOwnerAccountName или NSFileGroupOwnerAccountName. Вместо этого вы должны использовать идентификатор учетной записи, с NSFileOwnerAccountID и NSFileGroupOwnerAccountID. Если вы используете клавиши …Name -based, они игнорируются.

Может быть, что createDirectoryAtPath:withIntermediateDirectories:attributes: также имеет это ограничение. Я попытался бы установить идентификаторы вместо имен, которые, как я подозреваю, будут работать.

licensed under cc by-sa 3.0 with attribution.