1. NOM▲
euidaccess, eaccess - Vérifier les permissions utilisateur d'un fichier
2. 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);
3. 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.
4. 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.
5. ERREURS ▲
Identique à access(2).
6. VERSIONS ▲
La fonction eaccess() a été ajoutée à la version 2.4 de la glibc.
7. CONFORMITÉ ▲
Ces fonctions ne sont pas standards. Quelques autres systèmes possèdent la fonction eaccess().
8. 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.
9. VOIR AUSSI ▲
access(2), chmod(2), chown(2), faccessat(2), open(2), setgid(2), setuid(2), stat(2), credentials(7), path_resolution(7)
10. COLOPHON ▲
Cette page fait partie de la publication 3.52 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.
11. TRADUCTION ▲
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <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 à <>.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».