Книга: Linux программирование в примерах
11.4. Проверка для эффективного пользователя: euidaccess() (GLIBC)
11.4. Проверка для эффективного пользователя: euidaccess()
(GLIBC)
GLIBC предоставляет дополнительную функцию, которая работает подобно access()
, но проверяет в соответствии с эффективными UID, GID и набором групп:
#include <unistd.h> /* CLIBC */
int euidaccess(const char *path, int amode);
Аргументы и возвращаемое значение имеют тот же смысл, как для access()
. Когда равны эффективный и действительный UID и эффективный и действительный GID, euidaccess()
вызывает для осуществления теста access()
. Это имеет то преимущество, что ядро может проверить файловую систему только для чтения или другие условия, которые не отражаются в правах доступа и владении файлами.
В противном случае euidaccess()
сравнивает значения владельца и группы файла со значениями эффективных UID и GID и набора групп, используя соответствующие биты прав доступа. Этот тест основан на сведениях о файле от stat()
.
Если вы пишете переносимую программу, но предпочитаете использовать этот интерфейс, достаточно просто извлечь исходный файл из архива GLIBC и приспособить его для общего использования.
- 11.1. Проверка прав доступа
- 11.2. Получение ID пользователя и группы
- 11.3. Проверка для действительного пользователя: access()
- 11.4. Проверка для эффективного пользователя: euidaccess() (GLIBC)
- 11.5. Установка дополнительных битов доступа для каталогов
- 11.6. Установка действительных и эффективных ID
- 11.7. Работа со всеми тремя ID: getresuid() и setresuid() (Linux)
- 11.8. Пересечение минного поля безопасности: setuid root
- 11.9. Рекомендуемая литература
- 11.10. Резюме
- Упражнения
- 11.1. Проверка прав доступа
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- Сохранение информации о пользователях при миграции
- Реальный (RID) и эффективный (EUID) идентификаторы пользователя
- 12. Лекция: Создание приложений с графическим интерфейсом пользователя.
- Создание пользователя и группы на рабочей станции
- 5. Null-значения и проверка условий
- 1.1 Режимы ядра и пользователя Windows
- Управление пользователями и разрешениями узла
- Как быстро переключаться между двумя пользователями, не закрывая их программ?
- Как зайти на компьютер другого пользователя?
- Как открыть доступ к своей папке другим пользователям?