Table des matières
- Étape 1 - Préparer un environnement de test
- Étape 2 - Afficher les permissions
- Étape 3 - Comprendre les permissions
- Étape 4 - Pourquoi certaines commandes affichent "Permission denied" ?
- Étape 5 - Donner le droit d'exécution avec chmod
- Étape 6 - Retirer une permission
- Étape 7 - Comprendre la notation numérique
- Étape 8 - Quelques exemples utiles
- Étape 9 - Comprendre le propriétaire d'un fichier
- Étape 10 - Changer le propriétaire avec chown
- Étape 11 - Modifier le propriétaire et le groupe
- Étape 12 - Modifier un dossier entier
- Étape 13 - Modifier les permissions d'un dossier entier
- Bonnes pratiques
- Conclusion
Lorsque vous utilisez Linux, chaque fichier et chaque dossier possède des permissions. Elles permettent de déterminer qui peut lire, modifier ou exécuter un fichier. C'est un mécanisme essentiel qui protège vos données et garantit la sécurité du système.
Si vous avez déjà rencontré le message "Permission denied", c'est généralement parce que les permissions ne permettent pas l'action que vous souhaitez effectuer.
Dans ce tutoriel, nous allons apprendre à afficher les permissions, les comprendre, puis les modifier grâce aux commandes chmod et chown.
Aucune connaissance particulière n'est nécessaire.
Étape 1 - Préparer un environnement de test
Avant de modifier des permissions, nous allons créer quelques fichiers de démonstration. Cela nous permettra d'expérimenter sans risque.
Ouvrez un terminal puis exécutez les commandes suivantes :
mkdir permissions-demo
cd permissions-demo
touch document.txt
touch script.sh
mkdir sauvegarde
Ces commandes créent un dossier nommé permissions-demo, deux fichiers vides et un dossier.
Vérifiez le résultat avec :
ls
Vous devriez obtenir quelque chose de similaire :
document.txt
script.sh
sauvegarde

Étape 2 - Afficher les permissions
Maintenant que notre environnement est prêt, affichons les permissions.
Pour cela, utilisez la commande :
ls -l
Vous obtenez un résultat ressemblant à celui-ci :

Au premier regard, ces informations peuvent sembler compliquées. Pourtant, elles suivent toujours le même fonctionnement.
Chaque ligne décrit un fichier ou un dossier.
Elle indique notamment :
- son type ;
- ses permissions ;
- son propriétaire ;
- son groupe ;
- sa taille ;
- son nom.
Étape 3 - Comprendre les permissions
Observons uniquement cette partie :
-rw-r--r--
Le premier caractère indique le type de l'élément.
- - signifie qu'il s'agit d'un fichier.
- d signifie qu'il s'agit d'un dossier.
Les neuf caractères suivants représentent les permissions.
Ils sont séparés en trois groupes :
rw- r-- r--
Chaque groupe correspond à une catégorie d'utilisateurs.
Le premier groupe concerne le propriétaire.
Le deuxième concerne les utilisateurs appartenant au même groupe.
Le troisième concerne tous les autres utilisateurs.
Chaque lettre possède une signification.
| Lettre | Signification |
|---|---|
| r | Lecture (Read) |
| w | Écriture (Write) |
| x | Exécution (Execute) |
| - | Permission absente |
Pour l'exemple, le propriétaire peut lire et modifier le fichier.
En revanche, il ne peut pas l'exécuter.
Les autres utilisateurs disposent uniquement du droit de lecture.
À retenir : avant de modifier les permissions d'un fichier, prenez toujours l'habitude d'utiliser ls -l afin de vérifier les droits actuellement appliqués.

Étape 4 - Pourquoi certaines commandes affichent "Permission denied" ?
Essayons de créer un petit script.
Ouvrez le fichier :
nano script.sh
Ajoutez le contenu suivant :
#!/bin/bash
echo "Bienvenue sur SysNetTuto !"

Enregistrez le fichier puis quittez Nano.
Essayez ensuite de l'exécuter.
./script.sh
Vous obtenez probablement le message :
Permission denied
Cette erreur ne signifie pas que votre script est incorrect.
Linux refuse simplement de l'exécuter, car il ne possède pas encore le droit d'exécution.
Il s'agit d'un mécanisme de sécurité qui empêche le lancement accidentel de fichiers.

Étape 5 - Donner le droit d'exécution avec chmod
Pour rendre le script exécutable, utilisez la commande suivante :
chmod +x script.sh
Décortiquons cette commande.
- chmod signifie Change Mode.
- Le symbole + indique que l'on ajoute une permission.
- Le x représente la permission d'exécution.
Autrement dit, cette commande autorise désormais l'exécution du fichier.
Vérifiez les nouvelles permissions.
ls -l
Vous devriez obtenir :

Vous remarquerez que le x est apparu.
Essayez maintenant d'exécuter le script.
./script.sh
Le message suivant s'affiche :
Bienvenue sur SysNetTuto !
Le script fonctionne désormais correctement.

Étape 6 - Retirer une permission
Il est également possible de supprimer une permission.
Par exemple :
chmod -x script.sh
Le symbole - indique que l'on retire une permission.
Essayez ensuite de relancer le script.
./script.sh
Le message Permission denied réapparaît.
Cette commande est utile lorsque vous souhaitez empêcher l'exécution d'un fichier.

Étape 7 - Comprendre la notation numérique
Jusqu'à présent, nous avons utilisé les symboles +x et -x.
Il existe une autre méthode, très utilisée par les administrateurs système : la notation numérique.
Chaque permission possède une valeur.
| Permission | Valeur |
|---|---|
| Lecture | 4 |
| Écriture | 2 |
| Exécution | 1 |
Ces valeurs peuvent être additionnées.
Par exemple :
- 7 = Lecture + Écriture + Exécution
- 6 = Lecture + Écriture
- 5 = Lecture + Exécution
- 4 = Lecture uniquement
La commande suivante :
chmod 755 script.sh
attribue :
- 7 au propriétaire ;
- 5 au groupe ;
- 5 aux autres utilisateurs.
Le propriétaire peut donc lire, modifier et exécuter le fichier, tandis que les autres utilisateurs peuvent uniquement le lire et l'exécuter.
Cette notation est très pratique, car elle permet de modifier plusieurs permissions en une seule commande.
Étape 8 - Quelques exemples utiles
Autoriser uniquement le propriétaire à lire et modifier un fichier :
chmod 600 document.txt
Autoriser tout le monde à lire un fichier, mais seul le propriétaire peut le modifier :
chmod 644 document.txt
Donner tous les droits au propriétaire et uniquement la lecture et l'exécution au groupe et aux autres utilisateurs :
chmod 755 script.sh
Attention : vous rencontrerez parfois la commande :
chmod 777 fichier
Elle donne tous les droits à tout le monde. Même si elle peut résoudre temporairement un problème, elle représente un risque de sécurité. Il est donc préférable de l'éviter, sauf dans des cas très particuliers.
Étape 9 - Comprendre le propriétaire d'un fichier
Reprenons le résultat de la commande :
ls -l
Vous obtenez par exemple :

Regardons uniquement cette partie :
abdallah abdallah
Le premier nom correspond au propriétaire du fichier.
C'est généralement la personne qui a créé le fichier.
Le second nom correspond au groupe auquel appartient ce fichier.
Tous les membres de ce groupe peuvent bénéficier des permissions définies pour le groupe (r-x, rw-, etc.).
Dans un environnement avec plusieurs utilisateurs, cette distinction est très importante.

Étape 10 - Changer le propriétaire avec chown
La commande permettant de modifier le propriétaire est :
sudo chown utilisateur fichier
Par exemple :
sudo chown root document.txt
Le fichier appartient désormais à l'utilisateur root.
Vérifiez le résultat avec :
ls -l
Vous devriez voir :

Le propriétaire a changé.
À noter : cette commande nécessite généralement les droits administrateur, d'où l'utilisation de sudo.

Étape 11 - Modifier le propriétaire et le groupe
Il est également possible de modifier le propriétaire et le groupe en une seule commande.
La syntaxe est la suivante :
sudo chown utilisateur:groupe fichier
Par exemple :
sudo chown root:root document.txt
Le propriétaire devient root et le groupe devient également root.
Cette commande est souvent utilisée lors de l'installation de services ou d'applications.

Étape 12 - Modifier un dossier entier
Imaginons que votre dossier contienne plusieurs fichiers.
Il serait fastidieux de modifier chaque élément individuellement.
La commande chown possède donc une option très pratique :
sudo chown -R utilisateur:utilisateur permissions-demo
L'option -R signifie récursif.
Autrement dit, le changement sera appliqué :
- au dossier ;
- à tous les sous-dossiers ;
- à tous les fichiers présents à l'intérieur.
Cette option est très utilisée après une copie de fichiers ou lors de la restauration d'une sauvegarde.
Étape 13 - Modifier les permissions d'un dossier entier
Le même principe existe avec chmod.
Par exemple :
chmod -R 755 permissions-demo
Toutes les permissions seront appliquées au dossier ainsi qu'à son contenu.
Attention : n'utilisez pas cette commande sans réfléchir, surtout dans des dossiers système.
Une mauvaise permission peut empêcher un programme de fonctionner correctement.
Bonnes pratiques
Avant de modifier les permissions d'un fichier, prenez toujours quelques secondes pour analyser la situation.
Commencez par afficher les informations avec ls -l. Cela vous permettra de savoir si le problème provient des permissions ou du propriétaire.
Évitez également de donner plus de droits que nécessaire. Une permission trop permissive peut représenter un risque de sécurité, surtout sur un serveur accessible par plusieurs utilisateurs.
Enfin, utilisez sudo uniquement lorsque cela est réellement nécessaire. Travailler quotidiennement avec les privilèges administrateur augmente le risque de supprimer ou de modifier un fichier important par erreur.
Conclusion
Les commandes chmod et chown font partie des outils indispensables pour administrer un système Linux.
Grâce à chmod, vous pouvez contrôler qui est autorisé à lire, modifier ou exécuter un fichier. Avec chown, vous pouvez changer le propriétaire d'un fichier ou d'un dossier lorsque cela est nécessaire.
En combinant ces deux commandes avec ls -l, vous serez capable de résoudre la majorité des problèmes de permissions rencontrés sous Linux. Prenez le temps de vous entraîner sur des fichiers de test avant de modifier des fichiers système, et gardez à l'esprit qu'une bonne gestion des permissions est l'une des bases de la sécurité sous Linux.
Commentaires
Laisser un commentaire
Soyez le premier à commenter cet article !