Créa-blog

#100JoursPourCoder
Projet Créa-code

Ressources pour développeur web

Théme de la semaine : PHP version 8.5

CHMOD : Gérer vos fichiers et dossiers depuis le terminal

⏱️ Temps de lecture estimé : 8 minutes
Accueil Sécurité CHMOD : Gérer vos fichiers et dossiers depuis le terminal

Lorsque vous travaillez sur un système basé sur Linux ou macOS, vous êtes régulièrement amené à gérer des fichiers et des dossiers depuis le terminal. Si ouvrir un document ou déplacer un dossier semble évident, une autre question cruciale se pose rapidement : qui a le droit de lire, modifier ou exécuter ces fichiers ? C’est précisément ici qu’intervient la commande chmod.

Souvent mystérieuse pour les débutants, la commande chmod est pourtant l’une des plus essentielles. Elle détermine les permissions d’accès à vos fichiers et répertoires

Sans elle, vous pourriez vous retrouver avec des fichiers impossibles à ouvrir, des scripts qui refusent de s’exécuter ou au contraire, des documents accessibles par des utilisateurs qui n’auraient jamais dû y avoir accès.

Dans ce tutoriel, nous allons explorer ensemble de façon claire et détaillée tout ce qu’il faut savoir sur chmod. Vous découvrirez ce que c’est, à quoi cela sert, quels sont ses avantages et ses limites, comment et pourquoi l’utiliser, et nous terminerons par un cas pratique concret.

Qu’est-ce que chmod ?

Le mot chmod est l’abréviation de change mode. En français, cela signifie littéralement « changer le mode » d’un fichier. Le « mode » dont il est question correspond aux permissions d’accès associées à un fichier ou à un dossier.

Chaque fichier sur un système Linux ou macOS est accompagné d’un ensemble de règles qui indiquent :

  • qui peut lire le fichier (accéder à son contenu),
  • qui peut l’écrire (le modifier ou l’effacer),
  • qui peut l’exécuter (dans le cas d’un programme ou d’un script).

Ces règles s’appliquent à trois catégories d’utilisateurs :

  1. L’utilisateur propriétaire (celui qui a créé le fichier ou à qui il appartient).
  2. Le groupe (ensemble d’utilisateurs regroupés dans une même équipe).
  3. Les autres (tous les autres utilisateurs du système).

La commande chmod sert donc à ajuster ces permissions selon vos besoins.

Prenons un exemple simple : Vous avez un script nommé script.sh que vous avez rédigé vous-même. Si vous essayez de l’exécuter sans les bons droits, le terminal vous répondra que l’accès est refusé. C’est parce que ce fichier n’a pas reçu l’autorisation d’être exécuté. Un simple chmod +x script.sh permet alors de corriger le problème en rendant ce fichier exécutable.

À quoi sert chmod ?

Maintenant que vous savez que chmod est lié aux permissions, voyons plus concrètement son utilité.

Un système d’exploitation, en particulier Linux et macOS, repose sur un principe fondamental : la sécurité par la gestion des accès. Chaque fichier est précieux, et il n’est pas question de le laisser manipulé n’importe comment.

Le rôle principal de chmod est donc de définir clairement qui peut faire quoi avec vos fichiers et répertoires. Voici quelques usages courants qui illustrent son intérêt :

  • Sécuriser vos fichiers personnels : vous pouvez décider que seuls vous, en tant que propriétaire, avez le droit de lire et d’écrire dans vos documents, empêchant ainsi tout autre utilisateur d’y accéder.
  • Partager des fichiers au sein d’une équipe : vous pouvez configurer les permissions de manière à ce que les membres d’un groupe aient tous accès à certains fichiers collaboratifs, sans pour autant donner ces droits à tout le monde.
  • Rendre un programme exécutable : comme vu précédemment, un script ne peut être lancé que s’il est marqué comme exécutable. Chmod vous permet de donner ce droit.
  • Limiter les risques de sécurité : en restreignant les permissions, vous réduisez la surface d’attaque en cas d’accès malveillant à votre système.

En résumé, chmod est un outil de contrôle. Il garantit que seuls les utilisateurs autorisés peuvent agir sur un fichier, en fonction des besoins et du niveau de sécurité souhaité.

Les avantages de chmod

L’utilisation de chmod présente plusieurs avantages, aussi bien pour les particuliers que pour les professionnels travaillant sur des serveurs ou en développement.

Un contrôle précis des accès

Avec chmod, vous pouvez définir de manière très fine les permissions sur vos fichiers. Par exemple, vous pouvez autoriser uniquement la lecture pour un groupe, mais permettre à l’utilisateur propriétaire de tout faire (lecture, écriture et exécution). Ce contrôle granulaire est essentiel dans un environnement multi-utilisateurs.

Une meilleure sécurité

L’un des grands avantages de chmod réside dans la protection des données. En limitant les droits d’accès, vous réduisez considérablement les risques d’altération ou de fuite de vos informations sensibles. Cela est particulièrement important sur un serveur où plusieurs utilisateurs peuvent être connectés.

La flexibilité dans le travail collaboratif

Dans un cadre professionnel, il est fréquent de travailler à plusieurs sur les mêmes projets. Grâce à chmod, vous pouvez donner à vos collègues les droits nécessaires pour lire et modifier certains fichiers, sans avoir à ouvrir totalement l’accès aux autres.

Une commande simple mais puissante

Même si elle peut sembler intimidante au début, chmod est une commande très rapide à utiliser. Une seule ligne suffit pour modifier complètement la manière dont vos fichiers sont utilisés. C’est un gain de temps considérable pour gérer efficacement un grand nombre de documents.

Les limites de chmod

Aussi utile soit-elle, la commande chmod n’est pas exempte de limites. Comprendre ces limites permet d’éviter de mauvaises surprises et d’utiliser cette commande de manière éclairée.

Une commande parfois complexe pour les débutants

Le principal frein est la difficulté de compréhension des chiffres et des lettres utilisés pour définir les permissions. Entre les notations symboliques (rwx) et les notations numériques (755644, etc.), il est facile de s’y perdre quand on débute.

Un manque de clarté dans certaines situations

Changer les permissions ne résout pas toujours tous les problèmes. Parfois, le fichier reste inaccessible non pas à cause des droits, mais à cause du propriétaire ou du groupe associé. Dans ce cas, il faut utiliser d’autres commandes comme chown pour corriger la situation.

Un outil local, limité au système de fichiers

Chmod agit uniquement sur les permissions locales d’un système Linux ou macOS. Il ne gère pas les accès via un réseau, ni les droits d’un service externe (comme un serveur web configuré avec ses propres règles).

Le risque d’erreurs de manipulation

Une mauvaise utilisation de chmod peut avoir des conséquences sérieuses. Par exemple, accorder les droits complets à « tous les utilisateurs » (chmod 777) peut sembler une solution rapide, mais cela expose vos fichiers à des modifications ou suppressions non désirées.

Pourquoi utiliser chmod ?

On pourrait se demander : est-il vraiment nécessaire d’apprendre à utiliser chmod alors que de nombreux systèmes modernes proposent des interfaces graphiques pour gérer les fichiers ? La réponse est oui, et voici pourquoi.

Parce que la sécurité est primordiale

Dans un monde où la cybersécurité est une préoccupation constante, gérer correctement les permissions est une nécessité. Avec chmod, vous contrôlez exactement qui a le droit de voir ou de modifier vos données.

Parce que le terminal est incontournable

Sur Linux et macOS, le terminal est l’outil le plus direct pour interagir avec le système. Beaucoup de tâches d’administration ne peuvent être effectuées qu’en ligne de commande. Chmod fait partie des bases incontournables pour tout utilisateur qui veut aller un peu plus loin que l’utilisation basique du système.

Parce que vous gagnerez en autonomie

Apprendre à utiliser chmod, c’est gagner en autonomie. Vous n’aurez plus besoin de chercher de l’aide à chaque fois qu’un fichier refuse de s’exécuter. Vous saurez diagnostiquer le problème et le résoudre en quelques secondes.

Parce que c’est universel

Enfin, chmod est une commande standard dans le monde Unix. Que vous soyez sur Ubuntu, Debian, Fedora, macOS ou d’autres distributions, le fonctionnement est le même. Vos compétences seront donc valables partout.

Comment utiliser chmod ?

La commande chmod peut être utilisée de deux façons principales : avec une notation symbolique (qui utilise des lettres) et une notation numérique (qui utilise des chiffres).

La notation symbolique

Dans cette approche, vous modifiez les permissions en utilisant des lettres représentant à la fois les catégories d’utilisateurs et les actions autorisées.

Les catégories sont :

  • u : l’utilisateur propriétaire (user)
  • g : le groupe (group)
  • o : les autres (others)
  • a : tous les utilisateurs (all)

Les actions possibles sont :

  • r : read (lecture)
  • w : write (écriture)
  • x : execute (exécution)

Enfin, vous utilisez des signes pour indiquer ce que vous voulez faire :

  • + : ajouter une permission
  •  : retirer une permission
  • = : définir exactement les permissions souhaitées

Exemple simple

Si vous avez un fichier rapport.txt et que vous voulez donner au groupe le droit de lecture, vous écrirez :

chmod g+r rapport.txt

Si vous souhaitez retirer le droit d’écriture pour « autres », vous ferez :

chmod o-w rapport.txt

Et si vous voulez que tout le monde ait uniquement le droit de lecture (et rien d’autre) :

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?
chmod a=r rapport.txt

Cette notation est intuitive et lisible, ce qui la rend plus facile à comprendre pour les débutants.

La notation numérique

Cette méthode est plus compacte mais nécessite de comprendre un système basé sur des chiffres. Chaque type de permission est représenté par une valeur :

  • Lecture (r) = 4
  • Écriture (w) = 2
  • Exécution (x) = 1

En additionnant ces valeurs, vous obtenez le niveau de permission souhaité.

Exemple d’interprétation

  • 7 = 4 + 2 + 1 = lecture + écriture + exécution
  • 6 = 4 + 2 = lecture + écriture
  • 5 = 4 + 1 = lecture + exécution
  • 4 = lecture seule

Un nombre à trois chiffres représente respectivement :

  1. L’utilisateur propriétaire
  2. Le groupe
  3. Les autres

Exemple pratique

chmod 755 script.sh

Cela signifie :

  • 7 pour l’utilisateur : lecture, écriture et exécution
  • 5 pour le groupe : lecture et exécution
  • 5 pour les autres : lecture et exécution

Ainsi, seul le propriétaire peut modifier le fichier, mais tout le monde peut l’exécuter et le lire.

Un autre exemple :

chmod 644 rapport.txt

Cela donne :

  • 6 pour l’utilisateur : lecture et écriture
  • 4 pour le groupe : lecture seule
  • 4 pour les autres : lecture seule

C’est un réglage très courant pour des documents texte.

Quelle méthode choisir ?

En réalité, il n’y a pas de « meilleure » méthode. La notation symbolique est idéale pour des modifications ciblées et faciles à lire. La notation numérique est plus rapide et couramment utilisée par les administrateurs système car elle permet de définir immédiatement l’ensemble des permissions en une seule commande.

Si vous débutez, je vous recommande de commencer par la notation symbolique pour comprendre la logique, puis de passer progressivement à la notation numérique, plus concise.

Tableau des principales commandes

Valeur numériqueNotation symboliquePermissionsExplicationExemple
0AucuneAucun droitchmod 000 fichier.txt → personne ne peut lire, écrire ou exécuter
1–xExécutionPeut seulement exécuterchmod 001 script.sh → seuls les autres peuvent exécuter
2-w-ÉcriturePeut seulement modifier le fichierchmod 020 fichier.txt → le groupe peut écrire
3-wxÉcriture + ExécutionPeut modifier et exécuterchmod 033 script.sh → le groupe et les autres peuvent écrire et exécuter
4r–LecturePeut seulement lire le fichierchmod 400 fichier.txt → le propriétaire peut lire
5r-xLecture + ExécutionPeut lire et exécuterchmod 505 script.sh → propriétaire et autres peuvent lire et exécuter
6rw-Lecture + ÉcriturePeut lire et modifierchmod 660 fichier.txt → propriétaire et groupe peuvent lire et écrire
7rwxLecture + Écriture + ExécutionTous les droitschmod 755 mon_script.sh → propriétaire a tous les droits, groupe et autres peuvent lire et exécuter

Cas pratique : utiliser chmod pas à pas

Pour bien comprendre l’utilité de chmod, rien ne vaut un exemple concret. Imaginons que vous travailliez sur un projet et que vous créiez un petit script bash appelé bonjour.sh.

Étape 1 : Création du fichier

Pour éditer votre ficher, depuis votre terminal, vous tapez :

nano bonjour.sh

Vous y écrivez simplement :

#!/bin/bash
echo "Bonjour, bienvenue dans le tutoriel chmod !"

Ensuite, vous sauvegardez le fichier et revenez au terminal.

Étape 2 : Vérification des permissions actuelles

Avant de modifier quoi que ce soit, il est intéressant de vérifier les permissions actuelles. Pour cela, utilisez la commande :

ls -l bonjour.sh

Vous verrez quelque chose comme :

-rw-r--r--  1 utilisateur groupe  58 sep 11 15:20 bonjour.sh

Décryptons :

  • -rw-r–r– : ce sont les permissions.
  • rw- : l’utilisateur propriétaire a le droit de lecture et d’écriture.
  • r– : le groupe a uniquement le droit de lecture.
  • r– : les autres ont également uniquement le droit de lecture.

Conclusion : pour le moment, personne n’a le droit d’exécuter ce script.

Étape 3 : Rendre le script exécutable

Essayons de lancer le script directement :

./bonjour.sh

Le terminal répondra :

Permission denied

Cela veut dire que vous devez accorder le droit d’exécution. Pour cela, tapez :

chmod u+x bonjour.sh

Vérifions à nouveau :

ls -l bonjour.sh

Vous verrez maintenant :

-rwxr--r--  1 utilisateur groupe  58 sep 11 15:20 bonjour.sh

La différence : le x a été ajouté pour l’utilisateur.

Étape 4 : Exécution du fichier

Essayez à nouveau :

./bonjour.sh

Cette fois-ci, le message « Bonjour, bienvenue dans le tutoriel chmod ! » s’affiche correctement.

Étape 5 : Partage avec un groupe

Imaginons que vous travaillez en équipe et que vous souhaitez que les membres de votre groupe puissent aussi exécuter ce script. Vous pouvez alors faire :

chmod g+x bonjour.sh

Cela donnera :

-rwxr-xr--  1 utilisateur groupe  58 sep 11 15:20 bonjour.sh

Ainsi, le groupe a maintenant aussi le droit d’exécuter le fichier, mais les autres utilisateurs externes restent limités à la lecture.

Étape 6 : Passer par la notation numérique

Vous pourriez obtenir exactement le même résultat en utilisant la notation numérique.
Ici, l’utilisateur a rwx (7), le groupe a r-x (5), et les autres ont r– (4).
Cela correspond donc à :

chmod 754 bonjour.sh

La commande chmod est un outil incontournable pour gérer les permissions d’accès aux fichiers et répertoires sur les systèmes Linux et macOS. Derrière ses apparences parfois complexes, elle repose sur une logique claire : contrôler qui peut lire, écrire ou exécuter vos fichiers.

Nous avons vu ensemble ce qu’est chmod, à quoi il sert, ses avantages et ses limites. Nous avons également étudié ses deux modes d’utilisation, symbolique et numérique, puis expérimenté un cas pratique simple pour rendre un script exécutable et le partager avec un groupe.

Maîtriser chmod, c’est gagner en sécurité, en autonomie et en efficacité. Cela vous permet de protéger vos données personnelles, de collaborer plus facilement avec une équipe, et de prendre confiance dans l’usage du terminal.

Même si la commande peut sembler intimidante au premier abord, l’entraînement et la pratique vous aideront rapidement à l’utiliser avec aisance. Comme souvent en informatique, c’est en expérimentant que l’on progresse. Alors n’hésitez pas à créer vos propres fichiers de test et à jouer avec les permissions pour bien assimiler le fonctionnement de chmod.