euidaccess, eaccess - Vérifier les permissions utilisateur d'un fichier
Bibliothèque C standard (
libc,
-lc)
#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);
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.
En cas de succès (toutes les permissions demandées sont
autorisées),
0 est renvoyé. En cas d'erreur (au moins un
bit dans
mode demandé pour une permission qui est interdite ou
d'autres erreurs se sont produites),
-1 est renvoyé et
errno est positionné pour indiquer l'erreur.
Identique à
access(2).
La fonction
eaccess() a été ajoutée dans la
glibc 2.4.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
euidaccess(), eaccess() |
Sécurité des threads |
MT-Safe |
Ces fonctions ne sont pas standards. Quelques autres systèmes
possèdent la fonction
eaccess().
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.
access(2),
chmod(2),
chown(2),
faccessat(2),
open(2),
setgid(2),
setuid(2),
stat(2),
credentials(7),
path_resolution(7)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]> et David Prévot <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]