Я понял, что должен быть способ, потому что я могу сделать то же самое с командой defaults
: я могу указать путь к файлу plist, например:
sudo -s
defaults read /Users/username/Library/Preferences/some.plist.name
Это будет читатьпривилегии этого пользователя, хотя whoami
возвращает root
.
Итак, решение состоит в том, чтобы сделать это:
NSString *domain = @"/Users/username/Library/Preferences/some.plist.name";
NSUserDefaults myDefaults = [[NSUserDefaults alloc] initWithSuiteName:domain];
И затем использовать myDefaults
во всем приложении.
Обновление
На самом деле, это не работает.Сначала я подумал, что так и будет, но похоже, что это будет просто доступ к настройкам пользователя root.
Итак, хотя должен быть способ сделать это (если команда по умолчанию может это сделать, то мы должны какхорошо), но это не через NSUserDefaults.Может быть, это работает с CFPreferences
API.Придется продолжать расследование.