나는 루트에서 실행되는 응용 프로그램을 가지고 있으며 사용자가 만든 일부 파일을 변경합니다. 문제는 내 응용 프로그램을 사용하여 파일을 편집 한 후 성공적으로 저장되지만 파일 소유자가 변경된다는 것입니다. 편집 그래서 전에 파일이었다NSFileManager 변경 파일 소유자/사용 권한
NSMutableDictionary* myFile = [NSMutableDictionary dictionaryWithContentsOfFile:@"myFile.plist"];
[myFile setObject:@"some text" forKey:@"some key"];
BOOL result = [myFile writeToFile:@"myFile.plist" atomically:YES];
심지어 편집 한 후 파일의 소유자를 유지해야합니다 여기
[email protected] 1 root wheel 2418 Jun 18 18:29 myfile.plist
내가 파일을 편집 방법 코드 : 편집 후
[email protected] 1 myusername wheel 2418 Jun 18 18:29 myfile.plist
루트 아래에있는 앱을 사용합니다. 위의 문제를 어떻게 해결할 수 있습니까?
편집 : 나는 다음과 같은 코드를 시도하고 성공적인 결과를 반환하지만 권한을 변경하지 않습니다
NSDictionary *properties = [[NSFileManager defaultManager] attributesOfItemAtPath:@"myfile.plist"
error:nil];
NSMutableDictionary *newProperties = [NSMutableDictionary dictionaryWithDictionary:properties];
[newProperties setObject:@"myusername" forKey:NSFileOwnerAccountName];
NSError *error = nil;
BOOL result = [[NSFileManager defaultManager] setAttributes:newProperties
ofItemAtPath:@"myfile.plist"
error:&error];