euidaccess, eaccess -
проверяет
эффективные
права
пользователя
на файл
Standard C library (
libc,
-lc)
#define _GNU_SOURCE /* Смотрите feature_test_macros(7) */
#include <unistd.h>
int euidaccess(const char *pathname, int mode);
int eaccess(const char *pathname, int mode);
Подобно
access(2),
euidaccess()
проверяет
права и
существование
файла,
указанного
в
аргументе
pathname. Однако,
если
access(2)
выполняет
проверку
для
реального
идентификатора
пользователя
и группы
процесса,
то
euidaccess()
использует
эффективные
идентификаторы.
Значение
mode
представляет
собой
маску,
состоящую
из одного и
более
флагов
R_OK,
W_OK,
X_OK и
F_OK
(значение
описано в
access(2)).
Функция
eaccess()
— ещё одно
название
euidaccess(),
предоставляется
для
совместимости
с
некоторыми
другими
системами.
On success (all requested permissions granted), zero is returned. On error (at
least one bit in
mode asked for a permission that is denied, or some
other error occurred), -1 is returned, and
errno is set to indicate the
error.
Аналогичны
access(2).
The
eaccess() function was added in glibc 2.4.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
euidaccess(), eaccess() |
Безвредность
в нитях |
MT-Safe |
Эти
функции
являются
нестандартными.
В
некоторых
системах
есть
функция
eaccess().
Предупреждение:
Использование
этой
функции
для
проверки
прав
процесса
на файл
перед
выполнением
какой-то
операции
на основе
этой
информации
приводит к
состоянию
состязательности:
права на
файл могут
измениться
между
двумя
этими
шагами.
Обычно,
безопасней
просто
попытаться
выполнить
желаемую
операцию и
что-то
предпринять
при
возникновении
ошибки с
правами.
Эта
функция
всегда
разыменовывает
символьные
ссылки.
Если вам
нужно
проверить
права
символьной
ссылки,
используйте
вызов
faccessat(2) с
флагами
AT_EACCESS
и
AT_SYMLINK_NOFOLLOW.
access(2),
chmod(2),
chown(2),
faccessat(2),
open(2),
setgid(2),
setuid(2),
stat(2),
credentials(7),
path_resolution(7)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]>, Yuri Kozlov
<
[email protected]> и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]