Получить текущего пользователя из корневого режима? - PullRequest
2 голосов
/ 28 сентября 2011

Я пишу элемент входа в систему и пытаюсь найти, можно ли получить текущего пользователя.

Допустим, я вошел в систему с пользователем "Test" и когда я запускаю исполняемый файл с привилегиями root и если я использую

char *user  = getenv("USER");

пользователь "root".

Мой ожидаемый ответ - «Тест».

Как мне это получить?

Не знаю, смогу ли я добавить объективный код c в элемент входа? Возможно ли NSUserName в пункте входа.

NSString *user = NSUserName();

Ответы [ 2 ]

8 голосов
/ 29 сентября 2011

Вы хотите функция SCDynamicStoreCopyConsoleUser .

QA1133 дает некоторые важные детали и предостережения.

0 голосов
/ 28 сентября 2011

Элементами входа могут быть приложения Какао, так что вы можете использовать NSUserName() (что находится в Foundation, кстати).

Может также взглянуть на g etuid () / geteuid ()

...