Книга: Linux программирование в примерах
11.6.1. Изменение набора групп
11.6.1. Изменение набора групп
Функция setgroups()
устанавливает новый набор групп:
#include <sys/types.h> /* Common */
#include <unistd.h>
#include <grp.h>
int setgroups(size_t size, const gid_t *list);
Параметр size
указывает, сколько элементов в массиве list
. Возвращаемое значение равно 0, если все было нормально, и -1 с установленным errno в противном случае.
В отличие от функций для манипулирования значениями действительных и эффективных UID и GID, эту функцию может вызвать лишь процесс, действующий как root
. Это один пример того, что POSIX называет привилегированной операцией; сама она как таковая не стандартизуется POSIX.
setgroups()
используется любой программой, которая осуществляет регистрацию в системе, такой как /bin/login
для регистрации в консоли и /bin/sshd
для удаленной регистрации с помощью ssh
.
- 11.6.2. Изменение действительного и эффективного ID
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- Организация пользователей в группы с помощью ролей
- Группировка по номеру столбца
- Группировка по встроенным функциям и UDF
- Создание пользователя и группы на рабочей станции
- Группы
- Группа управления конфигурацией ПО
- Добавление, изменение и удаление элементов списка
- Добавление, изменение и удаление столбцов списка
- Добавление и изменение представления списка
- II. Вовлечение группы в работу и создание атмосферы взаимопонимания