INITGROUPS(3)

ИМЯ
initgroups - инициализирует вспомогательный групповой список доступа

ОБЗОР
#include <sys/types.h>
#include <grp.h>

int initgroups(const char *user, gid_t group);

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

initgroups():
    начиная с glibc 2.19:
        _DEFAULT_SOURCE
    в glibc 2.19 и старее:
        _BSD_SOURCE

ОПИСАНИЕ
Функция initgroups() инициализирует групповой список доступа путём чтения базы данных групп /etc/group и использования всех групп, в которые входит user. Также в список добавляется дополнительная группа group.

Аргумент user должен быть не равен NULL.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении функция initgroups() возвращает 0. В случае ошибки возвращается -1, и устанавливается соответствующее значение errno.

ОШИБКИ

ENOMEM
    Недостаточно памяти для структуры с информацией о группе.

EPERM
    Вызывающий процесс не имеет достаточно прав. Смотрите описание системного вызова setgroups(2).

ФАЙЛЫ

/etc/group
    файл базы данных групп

АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение
initgroups() | Безвредность в нитях | MT-Safe locale

СООТВЕТСТВИЕ СТАНДАРТАМ
SVr4, 4.3BSD.

СМОТРИТЕ ТАКЖЕ
getgroups(2), setgroups(2), credentials(7)