CHMOD |
Change le mode |
Perl |
POSIX |
Syntaxe
|
sub POSIX::chmod($mode,$filename);
|
Paramètres
| Nom |
Description |
| $mode |
Ce paramètre permet d'indiquer le mode d'accès : |
| 0001 |
Cette valeur permet d'indiquer le mode d'accès en exécution globale |
| 0002 |
Cette valeur permet d'indiquer le mode d'accès en écriture globale |
| 0004 |
Cette valeur permet d'indiquer le mode d'accès en lecture globale |
| 0010 |
Cette valeur permet d'indiquer le mode d'accès en exécution du groupe |
| 0020 |
Cette valeur permet d'indiquer le mode d'accès en écriture du groupe |
| 0040 |
Cette valeur permet d'indiquer le mode d'accès en lecture du groupe |
| 0100 |
Cette valeur permet d'indiquer le mode d'accès en exécution du propriétaire |
| 0200 |
Cette valeur permet d'indiquer le mode d'accès en écriture du propriétaire |
| 0400 |
Cette valeur permet d'indiquer le mode d'accès en lecture du propriétaire |
| $filename |
Ce paramètre permet d'indiquer le chemin d'accès |
Retour
| Valeur |
Description |
| vrai |
Cette valeur indique que l'opération s'est bien passé. |
| faux |
Cette valeur indique qu'une erreur est survenue. |
Description
Cette fonction permet de changer les droits d'accès des répertoires et des fichiers.
Remarques
- Modifie les permissions d'un fichier ou d'un répertoire : La fonction POSIX::chmod($mode, $filename) permet de changer les droits d'accès
Unix sur un fichier ou un répertoire. Elle applique un mode d'accès numérique (en base octale) définissant pouvant lire, écrire ou exécuter le fichier.
- Le mode doit être spécifié en notation octale : Les valeurs comme 0400 (lecture pour le propriétaire) ou 0002 (écriture pour tous) doivent être
exprimées en notation octale (avec un zéro initial). Si on oublie le zéro, Perl interprète le nombre en base 10, ce qui peut produire un comportement inattendu.
- Semblable à la fonction Perl native chmod : Perl dispose déjà d'une fonction intégrée chmod, étant plus simple à utiliser et mieux documentée que
POSIX::chmod. Cette version POSIX n'apporte aucun avantage particulier en Perl pur, sauf si on veut forcer un style POSIX uniforme.
- Peut retourner false sans message d'erreur clair : Si une erreur survient (par exemple, le fichier n'existe pas ou les permissions sont insuffisantes),
la fonction retourne 0 (faux) mais ne lance pas d'exception. Il est donc impératif de vérifier le résultat de l'appel et de gérer les erreurs manuellement.
- Nécessite les bons droits d'exécution : Changer les permissions d'un fichier exige que le script soit exécuté avec des droits suffisants sur le système
de fichiers. Par exemple, seul le propriétaire du fichier ou le superutilisateur peut retirer les droits d'exécution d'un fichier système.
- S'applique uniquement au fichier ou répertoire spécifié : Le changement de mode affecte uniquement le chemin fourni dans $filename. Pour changer
récursivement les permissions d'un ensemble de fichiers, il faut implémenter manuellement une traversée de l'arborescence (par exemple avec File::Find).
- Peu lisible comparé à l'utilisation de constantes symboliques : Utiliser directement des valeurs comme 0755 ou 0644 est courant mais peu explicite. Des
modules comme Fcntl ou File::chmod permettent une notation plus claire et plus sûre, via des constantes nommées ou des méthodes plus parlantes.
- Permet de restreindre ou d'élargir l'accès à des fichiers sensibles : Utiliser chmod est essentiel pour protéger ou ouvrir l'accès à certains
fichiers, comme les fichiers de configuration, scripts exécutables ou répertoires de données. Un bon usage de cette fonction est crucial en matière de sécurité et
d'administration système.
Voir également
Langage de programmation - Perl - chmod
Langage de programmation - Fonction C pour Linux - chmod
Système d'exploitation - Linux - Commande chmod
Système d'exploitation - FreeBSD - Commande chmod
Système d'exploitation - Unix - chmod
Langage de programmation - FreePascal - FPCHMOD (BaseUnix)
Langage de programmation - PHP - chmod
Dernière mise à jour : Dimanche, le 18 octobre 2015