Модуль NSS, который возвращает список групп Linux - PullRequest
0 голосов
/ 05 октября 2019

Я хочу сделать аутентификацию пользователя в 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) для идентификатора группы, и я не могу найти другие функции, которые принимают пользователя и возвращают список групп.

...