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 и приспособить его для общего использования.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Glibc

Из книги Компьютер на 100. Начинаем с Windows Vista автора Зозуля Юрий


Советы для эффективного рисования

Из книги Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ автора Мейерс Скотт

Советы для эффективного рисования Приведу несколько советов, помня о которых вы сможете рисовать быстрее и качественнее.? Чтобы отказаться от начатого рисования линии или фигуры, щелкните правой кнопкой мыши, не отпуская левую.? Чтобы отменить неудачно выполненное


Приложение А За пределами «Эффективного использования C++»

Из книги Интернет. Новые возможности. Трюки и эффекты [litres] автора Баловсяк Надежда Васильевна

Приложение А За пределами «Эффективного использования C++» В книгу «Эффективное использование C++» вошло то, что я считаю наиболее важными рекомендациями для практикующих программистов на C++. Если вы интересуетесь дополнительными возможностями повысить эффективность


Утилиты для эффективного интернет-серфинга

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

Утилиты для эффективного интернет-серфинга Знание возможностей этих программ позволит пользователю превратить браузер в мощный инструмент, способный решить целый ряд несвойственных ему задач.Создание RSS-лентыДля создания RSS-ленты существует множество специальных


6.1. Выбор возможностей glibc

Из книги Linux программирование в примерах автора Роббинс Арнольд

6.1. Выбор возможностей glibc В glibc существует набор макросов для выбора возможностей. Эти макросы используются для выбора стандарта, которому будет подчиняться glibc. Иногда стандарты конфликтуют между собой, a glibc позволяет выбирать именно тот набор стандартов (формальный,


7.2. Средства проверки памяти, входящие в состав glibc

Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

7.2. Средства проверки памяти, входящие в состав glibc Библиотека GNU С (glibc) предлагает три простых средства проверки памяти. Первые два — mcheck() и MALLOC_CHECK_ — вызывают проверку на непротиворечивость структуры данных кучи, а третье средство — mtrace() — выдает трассировку


3.2.1.9. Только GLIBC: чтение целых строк: getline() и getdelim()

Из книги Операционная система UNIX автора Робачевский Андрей М.

3.2.1.9. Только GLIBC: чтение целых строк: getline() и getdelim() Теперь, когда вы увидели, как читать строки произвольной длины, вы можете сделать вздох облегчения, что вам не нужно самим писать такую функцию. GLIBC предоставляет вам для этого две функции:#define _GNU_SOURCE 1 /* GLIBC */#include <stdio.h>#include


13.3.4.2. Только GLIBC:

Из книги автора

13.3.4.2. Только GLIBC: <libintl.h> Для программ, которые будут использоваться лишь на системах с GLIBC, использование заголовочных файлов и макросов похоже, но проще:#include <stdio.h>#include <libintl.h>#define _(msgid) gettext(msgid)#define N_(msgid) msgid/* ... все остальное то же ... */Как мы видели ранее, заголовочный


4.3.3. Редактирование пользователя

Из книги автора

4.3.3. Редактирование пользователя Для редактирования параметров учетной записи можно напрямую корректировать файл /etc/passwd, но я советую лучше использовать команду usermod. У нее такие же ключи, что и у useradd, но она не создает пользователя, а изменяет параметры уже


4.3.4. Удаление пользователя

Из книги автора

4.3.4. Удаление пользователя Для удаления пользователя применяется команда userdel. В качестве параметра передается только имя учетной записи, которую надо удалить, и можно распрощаться с ней навсегда. Например:userdel DanverБудет получено сообщение об ошибке, если пользователь в


18.3.12. Проверка пользователя, выполняющего сценарий

Из книги автора

18.3.12. Проверка пользователя, выполняющего сценарий В следующем примере для проверки условия используется переменная среды. Здесь проверяется, присвоено ли переменной LOGNAME значение "root". Обычно этот тип оператора добавляется в начале сценариев в качестве дополнительной