initgroups()

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

Прототип:

#include <grp.h>
#include <sys/types.h>
int initgroups( const char *name,
gid_t basegid );

Аргументы:

name
The name of the user whose group membership you want to use as the supplementary group access list.
basegid
A group ID that you want to include in the group access list.

Библиотека:

libc

Описание:

The initgroups() function reads the group membership for the user specified by name from the group database, and then initializes the supplementary group access list of the calling process (see getgrnam() and getgroups()).

If the number of groups in the supplementary access list exceeds NGROUPS_MAX, the extra groups are ignored.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EPERM
The caller isn't root.

Файлы:

/etc/group
The group database.

Классификация:

Unix

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Нет

Предостережения:

If initgroups() fails, it doesn't change the supplementary group access list.

The getgrouplist() function called by initgroups() is based on getgrent(). If the calling process uses getgrent(), the in-memory struct group is overwritten in the call to initgroups().

Тематические ссылки:

getgrent(), getgrnam(), getgrouplist(), getgroups()




Предыдущий раздел: Описание API системной библиотеки