CHMOD |
Change le mode |
---|---|
Perl |
Syntaxe
chmod mode,filename |
Paramètres
Nom | Description | |
---|---|---|
mode | Ce paramètre permet d'indiquer le mode d'accès : | |
Valeur | Description | |
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 |
---|---|
1 ou supérieur | Ces valeurs permet d'indiquer que l'opération s'est bien passé. Cette valeur correspond également au nombre de fichiers modifiés. |
0 | 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
- Granularité des droits d'accès : La fonction chmod permet une gestion fine des droits d'accès en distinguant les droits de lecture, d'écriture et d'exécution pour trois catégories distinctes : le propriétaire, le groupe et les autres utilisateurs. Cette granularité permet d'adapter précisément les autorisations en fonction des besoins de sécurité ou de partage du système.
- Notation octale des permissions : Les modes passés à chmod doivent être spécifiés en notation octale, ce qui peut sembler peu intuitif pour les débutants. Chaque chiffre représente une combinaison de bits pour une catégorie d'utilisateur (propriétaire, groupe, autres), et la somme de ces bits détermine les permissions effectives. Par exemple, 0755 accorde tous les droits au propriétaire, mais uniquement la lecture et l'exécution pour les autres.
- Retour de la fonction : La valeur de retour de chmod est utile pour vérifier la réussite de l'opération. Elle renvoie le nombre de fichiers dont les droits ont été modifiés, ce qui permet de gérer des traitements conditionnels ou des messages d'erreur en cas d'échec. Une valeur de retour de 0 indique que tous les changements ont échoué, ce qui mérite une vérification des permissions ou du chemin fourni.
- Utilisation sur plusieurs fichiers : chmod accepte une liste de fichiers en second paramètre, ce qui permet de modifier les permissions de plusieurs fichiers en une seule instruction. Cette capacité est pratique pour des scripts de gestion ou d'automatisation, notamment lors de la préparation de lots de fichiers à publier ou à restreindre.
- Dépendance au système de fichiers : L'efficacité de chmod dépend du type de système de fichiers sous-jacent. Sur les systèmes de type Unix/Linux, cette fonction agit directement sur les métadonnées POSIX. Cependant, sur certains systèmes de fichiers montés (par exemple FAT32), les permissions peuvent être ignorées ou limitées, ce qui restreint l'utilité de la fonction dans ces contextes.
- Sécurité et risques d'utilisation : Un mauvais usage de chmod peut ouvrir des failles de sécurité, notamment si l'on accorde les droits d'écriture ou d'exécution à tout le monde (exemple 0777). Cette permissivité rend un fichier vulnérable à des modifications ou exécutions non désirées, en particulier sur des systèmes multi-utilisateurs ou connectés à internet.
- Compatibilité avec les scripts d'interpréteur de commande : chmod de Perl s'aligne sur la commande chmod des systèmes Unix en termes de logique, mais ne supporte pas la notation symbolique (exemple u+x, g-w). Cela signifie que pour des utilisateurs habitués à la syntaxe des interpréteurs de commandes, l'utilisation en Perl impose une conversion mentale vers la notation octale.
- Préparation de déploiement ou de packaging : Dans les scripts d'installation ou de déploiement, chmod est couramment utilisé pour s'assurer que les exécutables, les scripts ou les fichiers de configuration disposent des droits adéquats. Cela garantit que les composants seront utilisables par les bons utilisateurs tout en restant sécurisés, évitant ainsi des erreurs d'exécution ou d'accès ultérieures.
Exemple
Voici un exemple permet d'écrire trois octets dans le fichier «mydata.bin» et de lui fixer des droits d'accès en lecture seulement :
Voir également
Langage de programmation - Perl - Référence de procédures et fonctions - POSIX::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 - C pour Linux - chmod
Langage de programmation - PHP - chmod
Références
La Bible Micro Application HTML & Développement Web, Stefan Munz, Wolfgang Nefzger, 2003, ISBN: 2-7429-2898-7, page 1175
Dernière mise à jour : Dimanche, le 18 octobre 2015