eaccess − check effective user’s permissions for
_GNU_SOURCE /* See feature_test_macros(7) */
euidaccess(const char *pathname, int
int eaccess(const char *pathname, int
access(2), euidaccess() checks permissions and
existence of the file identified by its argument
pathname. However, whereas access(2) performs
checks using the real user and group identifiers of the
process, euidaccess() uses the effective
a mask consisting of one or more of R_OK,
W_OK, X_OK, and F_OK, with the same
meanings as for access(2).
is a synonym for euidaccess(), provided for
compatibility with some other systems.
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 appropriately.
eaccess() function was added to glibc in version
explanation of the terms used in this section, see
are nonstandard. Some other systems have an eaccess()
Using this function to check a process’s permissions
on a file before performing some operation based on that
information leads to race conditions: the file permissions
may change between the two steps. Generally, it is safer
just to attempt the desired operation and handle any
permission error that occurs.
always dereferences symbolic links. If you need to check the
permissions on a symbolic link, use faccessat(2) with
the flags AT_EACCESS and
chmod(2), chown(2), faccessat(2),
open(2), setgid(2), setuid(2),
This page is
part of release 4.04 of the Linux man-pages project.
A description of the project, information about reporting
bugs, and the latest version of this page, can be found at