ACCESS |
Accès |
|---|---|
Perl |
POSIX |
Syntaxe
| sub POSIX::access($path, $mode); |
Paramètres
| Nom | Description |
|---|---|
| $path | Ce paramètre permet de spécifier le chemin du fichier ou du répertoire dont on souhaite tester l'accessibilité. Il doit contenir une chaîne représentant un chemin absolu ou relatif. |
| $mode | Ce paramètre permet de définir le type d'accès à tester pour le fichier indiqué. Il s'agit d'une valeur numérique ou d'une constante indiquant si l'on souhaite tester la lisibilité, l'écriture, l'exécution ou l'existence du fichier. |
Description
Cette fonction permet de fixer l'accessibilité d'un fichier.
Remarques
- Test d'accessibilité sans ouvrir le fichier : La fonction POSIX::access permet de vérifier les droits d'accès à un fichier ou un répertoire sans avoir à l'ouvrir ou à le manipuler directement. C'est une méthode utile pour vérifier au préalable si une opération (lecture, écriture, exécution) est possible.
- Basée sur les permissions réelles du processus : Contrairement à certaines fonctions qui vérifient les autorisations en tant qu'utilisateur effectif (effective UID), access vérifie les droits réels du processus appelant. Cela peut conduire à des résultats différents si le script s'exécute avec des permissions effectives modifiées (exemple setuid).
- Utilisation de constantes standardisées : Le paramètre $mode accepte des constantes comme R_OK, W_OK, X_OK, et F_OK, définies par la norme POSIX. Cela garantit une meilleure lisibilité du code et permet de spécifier clairement le type de test à effectuer.
- Retour d'une valeur booléenne simple : access retourne une valeur vraie (1) si le test d'accès réussit, et une valeur fausse (0) sinon. Cela permet une intégration fluide dans des structures conditionnelles, sans devoir gérer d'objets ou de messages d'erreur complexes.
- Ne garantit pas l'issue d'un accès futur : Même si POSIX::access indique qu'un fichier est accessible, cela ne garantit pas que l'accès réel réussira au moment voulu. Par exemple, les permissions ou l'état du système peuvent changer entre le test et l'accès effectif (problème de TOCTOU, "Time Of Check to Time Of Use").
- Fonction utile pour la validation préliminaire : Elle est souvent utilisée pour effectuer des vérifications préalables dans des scripts de traitement de fichiers ou de configuration. Cela permet de prévenir des erreurs inattendues et d'offrir des messages d'erreur plus explicites à l'utilisateur.
- Moins utilisée dans les scripts modernes Perl : Dans les scripts modernes, les développeurs préfèrent souvent utiliser les opérateurs de test de fichier intégrés à Perl (-r, -w, -x, -e) car ils sont plus concis. Cependant, POSIX::access reste utile dans des contextes multi-plateformes ou pour du code POSIX-compliant.
- Utile pour les scripts exécutés avec des permissions particulières : Dans les environnements sécurisés, comme ceux avec gestion d'utilisateurs multiples ou scripts avec élévation de privilèges, access permet de vérifier les droits effectifs du processus courant, ce qui est plus fiable que de simplement se baser sur les métadonnées de fichier.
Exemple
Voici un exemple permettant de tester le droit d'accès au fichier «CONFIG.SYS» :
on obtiendra le résultat semblable au suivant sous un Windows 2000 ou XP :
Vous avez le droit d'accèsVoir également
Langage de programmation - Free Pascal - Référence de procédures et fonctions - FPACCESS
Dernière mise à jour : Dimanche, le 18 octobre 2015