Я пытаюсь использовать setuid() и setgid(), чтобы установить соответствующие идентификаторы программы для отказа от прав root, но для их использования мне нужно знать uid и gid пользователя, которого я хочу изменить, ,Программно получать UID и GID от имени пользователя в Unix?
Есть ли системный вызов для этого? Я не хочу его жестко кодировать или анализировать из/etc/passwd.
Кроме того, я хотел бы сделать это программно, а не с помощью:
идентификатор -u USERNAME
Любая помощь будет принята с благодарностью
Что случилось с синтаксического анализа/и т.д./пароль? – eduffy
Я должен был сказать: «Я бы предпочел не разбираться/etc/passwd», так как я подозревал, что есть более простой способ, и благодаря ответам я нашел его. – Evan
Неверная обработка парсинга/etc/passwd заключается в том, что имена пользователей не могут быть сохранены там - они могут отсутствовать на сервере каталогов (LDAP и т. Д.) Где-то. Другое дело, что это уже сделано для вас, с помощью getpwnam() и др. –