Я хочу сделать аутентификацию пользователя в Linux через keycloak. Я создал PAM и модуль NSS, которые используют libcurl для отправки ему команд REST. В модуле NSS я реализовал функции getpwuid_r и getpwnam_r, которые возвращают структуру passwd, как определено в pwd.h
struct passwd {
char *pw_name;
char *pw_passwd;
uid_t pw_uid;
gid_t pw_gid;
time_t pw_change;
char *pw_class;
char *pw_gecos;
char *pw_dir;
char *pw_shell;
time_t pw_expire;
};
, это прекрасно работает, если вы хотите вернуть один идентификатор группы. Я думаю, что эта группа является основной. Но мне нужно охватить также сценарии, когда пользователь принадлежит к нескольким группам. Как я могу это сделать ? кажется невозможным с этими функциями, которые возвращают одно целое число (uid_t) для идентификатора группы, и я не могу найти другие функции, которые принимают пользователя и возвращают список групп.