Available in

(1) (1)/hu (1)/pl (1)/zh_CN (1)/zh_TW (2) (2)/cs (2)/de (2)/es (2)/fr (2)/ja (2)/ko (2)/nl (2)/pl (2)/ru (2freebsd) (3) (3posix) (3tcl) (5)

TOC

ACCESS(2)                 Manuel du programmeur Linux                ACCESS(2)



NOM

       access  -  Vrifier  les permissions d'accs  un fichier de l'utilisateur
       rel

SYNOPSIS

       #include <unistd.h>

       int access(const char *pathname, int mode);

DESCRIPTION

       access() vrifie si le processus appelant peut accder au  fichier  path-
       name. Si pathname est un lien symbolique, il est drfrenc.

       Le  mode spcifie les vrifications d'accs  effectuer. Il prend la valeur
       F_OK ou un masque contenant un OU binaire d'une des valeurs R_OK,  W_OK
       et  X_OK. F_OK teste l'existence du fichier. R_OK, W_OK et X_OK testent
       si le fichier existe et autorise respectivement la  lecture,  l'criture
       et l'excution.

       Le  test  est  effectu  avec les UID et GID rels du processus appelant,
       plutt qu'avec les IDs effectifs qui sont utiliss lorsque l'on tente une
       opration  (comme  open(2))  sur  le fichier. Ceci permet aux programmes
       Set-UID de dterminer les autorisations de l'utilisateur ayant invoqu le
       programme.

       Si  le  processus  appelant  est  privilgi (c'est--dire son UID rel est
       zro), alors une vrification X_OK russit  pour  un  fichier  rgulier  si
       l'excution  est  permise  pour  l'utilisateur propritaire, le groupe ou
       pour les autres.

VALEUR RENVOYE

       En cas de succs (toutes les permissions demandes sont autorises), 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

       access() doit chouer si :

       EACCES L'accs  serait  refus au fichier lui-mme, ou il n'est pas permis
              de parcourir l'un des rpertoires du prfixe du  chemin  de  path-
              name. (Voir aussi path_resolution(7).)

       ELOOP  Trop  de  liens  symboliques ont t rencontrs en parcourant path-
              name.

       ENAMETOOLONG
              pathname est trop long.

       ENOENT Un composant du chemin d'accs pathname n'existe pas  ou  est  un
              lien symbolique pointant nulle part.

       ENOTDIR
              Un lment du chemin d'accs pathname n'est pas un rpertoire.

       EROFS  On  demande  une  criture  sur  un systme de fichiers en lecture
              seule.

       access() peut chouer si :

       EFAULT pathname pointe en-dehors de l'espace d'adressage accessible.

       EINVAL mode tait mal spcifi.

       EIO    Une erreur d'entre-sortie s'est produite.

       ENOMEM Pas assez de mmoire pour le noyau.

       ETXTBSY
              On a demand l'criture dans un fichier excutable qui est en cours
              d'utilisation.

CONFORMIT

       SVr4, BSD 4.3, POSIX.1-2001.

NOTES

       Attention :  Utiliser  access()  pour  vrifier  si  un utilisateur a le
       droit, par exemple, d'ouvrir un  fichier  avant  d'effectuer  rellement
       l'ouverture  avec  open(2), risque de crer un trou de scurit. En effet,
       l'utilisateur peut exploiter le petit intervalle de temps entre la vri-
       fication et l'accs pour modifier le fichier. Pour cette raison, l'util-
       isation de cet appel systme devrait tre vit.

       access() renvoie une erreur si l'un des types d'accs de mode est refus,
       mme si d'autres types spcifis dans mode sont autoriss.

       Si  le  processus  appelant a les privilges suffisants (c'est--dire est
       superutilisateur), POSIX.1-2001 permet  une implmentation d'indiquer un
       succs pour X_OK mme si le fichier n'a aucun bit d'excution positionn.

       Un  fichier n'est accessible que si les permissions de chacun des rper-
       toires du prfixe du chemin pathname permet les recherches  (c'est--dire
       l'excution).  Si un rpertoire est inaccessible, alors l'appel  access()
       chouera, sans tenir compte des permissions du fichier lui mme.

       Seuls les bits d'accs sont vrifis, et non pas le  contenu  du  fichier.
       Ainsi, l'autorisation d'criture dans un rpertoire indique la possibilit
       d'y crer des fichiers et non d'y crire comme dans un fichier.  De  mme,
       un  fichier  DOS  peut  tre  considr comme excutable, alors que l'appel
       execve(2) chouera videmment.

       access() peut fonctionner incorrectement sur un serveur NFS si les cor-
       respondances  d'UID sont actives, car ces correspondances sont gres par
       le  serveur,  et  masques  au  client  qui  effectue  les  vrifications
       d'autorisation.

BOGUES

       Dans  le  noyau  2.4  (et  auparavant)  les tests X_OK sont grs de faon
       bizarre pour le superutilisateur. Si toutes les catgories de permission
       d'excution  sont  dsactives  pour un fichier (n'tant pas un rpertoire),
       access() ne renvoie -1 que si le mode est juste X_OK ; si R_OK ou  W_OK
       est  galement prcis dans le mode, access() renvoyait 0 pour ce fichier.
       Les premier noyaux 2.6 (jusqu' la version 2.6.3) se comportaient de  la
       mme faon que les noyaux 2.4.

       Dans  les  noyaux  antrieurs   2.6.20,  access()  ignorait  l'effet  de
       l'attribut MS_NOEXEC s'il tait utilis pour monter le systme de fichiers
       correspondant  (avec  mount(2)). Depuis Linux 2.6.20, access() prend en
       compte cet attribut.

VOIR AUSSI

       chmod(2),  chown(2),  faccessat(2),  open(2),   setgid(2),   setuid(2),
       stat(2), euidaccess(3), credentials(7), path_resolution(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.07 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies         peuvent         tre         trouves         l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette page de manuel a t traduite et mise  jour par  Christophe  Blaess
       <http://www.blaess.fr/christophe/>;  entre  1996 et 2003, puis par Alain
       Portal <aportal AT univ-montp2 DOT fr> jusqu'en 2006, et mise  disposi-
       tion sur http://manpagesfr.free.fr/.

       Les  mises   jour et corrections de la version prsente dans Debian sont
       directement gres par Julien Cristau  <jcristau [AT] debian.org>  et  l'quipe
       francophone de traduction de Debian.

       Veuillez    signaler    toute   erreur   de   traduction   en   crivant
       <debian-l10n-french [AT] lists.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez toujours avoir accs  la version anglaise de ce document en
       utilisant la commande  man -L C <section> <page_de_man> .



Linux                           10 juillet 2007                      ACCESS(2)

COMMENTS

Add your comment here. Whitespace and linebreaks are preserved. URLs are linked automatically.
CAPTCHA

No HTML allowed. URLs will be linked with nofollow attribute. Whitespace is preserved.