EUIDACCESS(3)

NOM
euidaccess, eaccess - Vérifier les permissions utilisateur d'un fichier

SYNOPSIS
#define _GNU_SOURCE             /* Consultez feature_test_macros(7) */
#include <unistd.h>

int euidaccess(const char *pathname, int mode);
int eaccess(const char *pathname, int mode);

DESCRIPTION
Comme access(2), euidaccess() vérifie les permissions et l'existence du fichier identifié par pathname. Cependant, là où access(2) effectue une vérification avec les identifiants réels d'utilisateur et de groupe du processus, euidaccess() utilise les identifiants effectifs. mode est un masque constitué d'un ou plusieurs attributs R_OK, W_OK, X_OK et F_OK qui ont le même sens qu'avec access(2). eaccess() est un synonyme de euidaccess(), fourni par compatibilité avec d'autres systèmes.

VALEUR RENVOYÉE
En cas de succès (toutes les permissions demandées sont autorisées), 0 est renvoyé. En cas d'erreur (au moins une permission de mode est interdite ou d'autres erreurs se sont produites), -1 est renvoyé et errno contient le code d'erreur.

ERREURS
Identique à access(2).

VERSIONS
La fonction eaccess() a été ajoutée à la version 2.4 de la glibc.

CONFORMITÉ
Ces fonctions ne sont pas standards. Quelques autres systèmes possèdent la fonction eaccess().

NOTES
Attention : l'utilisation de cette fonction pour vérifier les permissions d'un processus sur un fichier avant d'effectuer quelques opérations basées sur cette information conduit à une situation de compétition (« race condition ») : les permissions du fichier peuvent changer entre les deux étapes. Généralement, il est plus judicieux d'exécuter l'opération souhaitée et de gérer toutes les erreurs de permissions qui se produisent. Cette fonction déférence toujours les liens symboliques. Si vous devez vérifier les permissions d'un lien symbolique, utilisez faccessat(2) avec les drapeaux AT_EACCESS et AT_SYMLINK_NOFOLLOW.

VOIR AUSSI
access(2), chmod(2), chown(2), faccessat(2), open(2), setgid(2), setuid(2), stat(2), credentials(7), path_resolution(7)

COLOPHON
Cette page fait partie de la publication 3.40 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <URL:http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <URL:http://perkamon.alioth.debian.org/>.

Florentin Duneau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».