Débuter avec les permissions Linux : chmod, chown, umask
Apprenez les permissions Linux avec chmod, chown et umask grâce à des explications claires, exemples concrets et cas pratiques pas à pas.

Les permissions sont l’un des mécanismes les plus importants de Linux. Elles déterminent qui peut lire, modifier ou exécuter un fichier ou un dossier. Quand on débute, les commandes chmod, chown et umask paraissent souvent abstraites, car elles manipulent des notions comme les droits rwx, les utilisateurs, les groupes et les modes de création de fichiers.
Pourtant, comprendre ces bases change complètement la manière d’utiliser un système Linux. Cela permet de mieux sécuriser ses fichiers, de résoudre des erreurs du type Permission denied, de partager proprement un dossier avec d’autres utilisateurs, et d’éviter des réglages trop permissifs qui fragilisent la machine.
Dans ce tutoriel, nous allons expliquer pas à pas le fonctionnement des permissions Linux en ligne de commande, puis apprendre à utiliser chmod, chown et umask avec des cas pratiques. L’objectif est de comprendre la logique derrière chaque commande, pas seulement de recopier des exemples.
Prérequis
- Savoir ouvrir un terminal sous Linux.
- Connaître les commandes de base comme
ls,cd,mkdirettouch. - Disposer d’un compte utilisateur sur une machine Linux, locale ou distante.
- Optionnel : avoir accès à
sudopour certains tests sur la propriété des fichiers.
Matériel nécessaire
- Un ordinateur sous Linux ou un terminal sur un serveur Linux
- Un utilisateur standard pour créer des fichiers de test
- Un accès sudo facultatif pour tester chown
- Un dossier de travail dédié aux exercices
Étapes
Comprendre ce que protègent les permissions Linux


Sous Linux, chaque fichier et chaque dossier possède des permissions. Elles servent à contrôler les actions autorisées selon l’identité de la personne qui accède à l’élément.
Les trois actions de base sont :
- r pour read : lire le contenu ;
- w pour write : modifier ou écrire ;
- x pour execute : exécuter un fichier ou traverser un dossier.
Ces droits sont répartis en trois catégories d’utilisateurs :
- u : le propriétaire du fichier ;
- g : le groupe associé au fichier ;
- o : les autres utilisateurs ;
On parle souvent aussi de a pour all, c’est-à-dire tout le monde.
Le point essentiel à retenir est que Linux ne traite pas les fichiers et dossiers de façon exactement identique. Par exemple :
- sur un fichier,
rpermet de lire le contenu,wde le modifier, etxde l’exécuter si c’est un script ou un binaire ; - sur un dossier,
rpermet de lister son contenu,wde créer, supprimer ou renommer des éléments à l’intérieur, etxd’y entrer ou de traverser le chemin.
Cette distinction est très importante. Beaucoup d’erreurs viennent du fait qu’on applique la logique d’un fichier à un dossier.
Lire les permissions avec ls -l

La commande la plus courante pour afficher les permissions est :
bashls -lCréez un dossier de test puis quelques fichiers :
bashmkdir permissions-demo cd permissions-demo touch notes.txt mkdir projet ls -lVous verrez une sortie du genre :
bash-rw-r--r-- 1 utilisateur utilisateur 0 notes.txt drwxr-xr-x 2 utilisateur utilisateur 4096 projetDécomposons la première colonne :
- le premier caractère indique le type :
-pour un fichier,dpour un dossier ; - les trois caractères suivants concernent le propriétaire ;
- les trois suivants concernent le groupe ;
- les trois derniers concernent les autres.
Dans l’exemple
-rw-r--r--:- le propriétaire peut lire et écrire ;
- le groupe peut seulement lire ;
- les autres peuvent seulement lire.
Dans
drwxr-xr-x:- le propriétaire peut lire, écrire et traverser le dossier ;
- le groupe peut lire et traverser ;
- les autres peuvent lire et traverser.
Les colonnes suivantes donnent aussi des informations utiles :
- le nombre de liens ;
- le nom du propriétaire ;
- le nom du groupe ;
- la taille ;
- la date ;
- le nom du fichier ou du dossier.
Pour identifier rapidement vos fichiers cachés également, vous pouvez utiliser :
bashls -laEt pour voir les permissions d’un dossier sans lister son contenu, utilisez :
bashls -ld projet- le premier caractère indique le type :
Comprendre les droits sur les fichiers et les dossiers
Avant de modifier des permissions, il faut bien comprendre les effets réels de chaque droit.
Sur un fichier
r: autorise la lecture du contenu.w: autorise la modification du contenu.x: autorise l’exécution du fichier comme programme ou script.
Exemple : un script shell sans bit d’exécution ne peut pas être lancé directement avec
./script.sh.Sur un dossier
r: autorise à voir la liste des noms contenus dans le dossier.w: autorise à créer, supprimer ou renommer des entrées dans ce dossier.x: autorise à entrer dans le dossier et à accéder aux éléments si le chemin est connu.
Le droit
xsur un dossier est souvent le plus mal compris. Sans lui, on ne peut pas réellement traverser le dossier, même si on possède le droit de lecture.Un cas classique :
- un dossier avec
rmais sansxpeut parfois être listé mais pas traversé normalement ; - un dossier avec
xmais sansrpeut être traversé si l’on connaît le nom exact des fichiers, sans pouvoir lister librement son contenu.
Ces nuances sont utiles pour sécuriser un répertoire de travail ou exposer un ensemble de fichiers de manière contrôlée.
Modifier les permissions avec chmod en mode symbolique
La commande
chmodsert à modifier les permissions. Le mode symbolique est souvent le plus simple pour débuter car il est explicite.La structure générale est :
bashchmod qui opération droits fichierLes éléments possibles sont :
u: utilisateur propriétaire ;g: groupe ;o: autres ;a: tout le monde ;+: ajouter un droit ;-: retirer un droit ;=: définir exactement les droits ;r,w,x: droits eux-mêmes.
Exemples :
bashchmod u+x script.sh chmod g-w notes.txt chmod o-r secret.txt chmod a+r guide.txtVoici ce que signifient ces commandes :
chmod u+x script.shajoute le droit d’exécution au propriétaire ;chmod g-w notes.txtretire l’écriture au groupe ;chmod o-r secret.txtretire la lecture aux autres ;chmod a+r guide.txtdonne la lecture à tout le monde.
Vous pouvez combiner plusieurs règles :
bashchmod u+rwx,g+rx,o-rwx fichier.txtCette écriture permet de faire plusieurs changements d’un coup.
L’opérateur
=est très utile quand on veut fixer un état précis :bashchmod u=rw,g=r,o= notes.txtIci :
- le propriétaire aura lecture et écriture ;
- le groupe aura lecture seule ;
- les autres n’auront aucun droit.
Le mode symbolique est généralement plus lisible dans un contexte pédagogique ou lorsqu’on veut éviter les erreurs de conversion numérique.
Utiliser chmod en mode numérique avec les valeurs 4, 2 et 1
Le mode numérique repose sur une addition simple :
r = 4w = 2x = 1
On additionne les valeurs pour chaque catégorie :
7 = 4 + 2 + 1 = rwx6 = 4 + 2 = rw-5 = 4 + 1 = r-x4 = r--0 = ---
On écrit ensuite trois chiffres dans l’ordre :
- propriétaire ;
- groupe ;
- autres.
Exemples fréquents :
bashchmod 644 notes.txt chmod 600 secret.txt chmod 755 script.sh chmod 700 priveInterprétation :
644: propriétaire enrw-, groupe enr--, autres enr--;600: seul le propriétaire peut lire et écrire ;755: propriétaire enrwx, groupe enr-x, autres enr-x;700: seul le propriétaire a tous les droits.
Le mode numérique est très utilisé car il est compact et rapide, notamment dans les scripts, la documentation et l’administration système.
Une règle pratique souvent retenue :
644pour des fichiers de données courants ;755pour des scripts ou des dossiers accessibles ;600pour des fichiers sensibles ;700pour des répertoires privés.
Attention toutefois : ces valeurs ne sont pas des obligations universelles. Elles doivent correspondre au besoin réel.
Cas pratique : rendre un script exécutable correctement
Supposons que vous créez un script shell :
bashecho 'echo Bonjour' > hello.sh ls -l hello.shLe fichier sera généralement créé sans droit d’exécution. Si vous essayez :
bash./hello.shvous risquez d’obtenir un message de refus d’exécution.
Pour autoriser l’exécution au propriétaire :
bashchmod u+x hello.shOu pour donner l’exécution à tous :
bashchmod 755 hello.shVérifiez ensuite :
bashls -l hello.shLe résultat attendu ressemblera à :
bash-rwxr-xr-x 1 utilisateur utilisateur 13 hello.shVous pourrez alors lancer :
bash./hello.shBon réflexe : ne donnez pas automatiquement le droit d’exécution à tous les fichiers. Un fichier texte ou un document n’a pas besoin d’être exécutable. Ajoutez
xuniquement lorsqu’il s’agit réellement d’un programme, d’un script ou d’un besoin spécifique.Cas pratique : protéger un fichier personnel ou sensible
Imaginons un fichier contenant des informations privées :
bashtouch sauvegarde.txt ls -l sauvegarde.txtPar défaut, le fichier peut être lisible par le groupe et les autres selon l’umask active. Si vous voulez que seul votre utilisateur puisse y accéder :
bashchmod 600 sauvegarde.txtVérifiez :
bashls -l sauvegarde.txtVous devriez voir :
bash-rw-------Cela signifie :
- le propriétaire peut lire et écrire ;
- le groupe n’a aucun droit ;
- les autres n’ont aucun droit.
Pour un dossier personnel à restreindre :
bashmkdir coffre chmod 700 coffre ls -ld coffreAvec
700, seul le propriétaire peut entrer dans le dossier, lister son contenu et y écrire.Ce type de réglage convient bien à des notes personnelles, des brouillons, des clés privées ou des sauvegardes locales. Il faut néanmoins garder une règle simple : plus un fichier est sensible, plus les permissions doivent être minimales.
Cas pratique : partager un dossier avec un groupe
Un scénario très fréquent consiste à partager un répertoire entre plusieurs utilisateurs appartenant au même groupe. Le principe Linux repose ici sur la combinaison propriété + groupe + permissions.
Commencez par observer le propriétaire et le groupe d’un dossier :
bashmkdir partage ls -ld partageSi vous souhaitez que le groupe puisse lire et écrire dans ce dossier, vous pouvez faire :
bashchmod 775 partageInterprétation :
- le propriétaire :
rwx; - le groupe :
rwx; - les autres :
r-x.
Si vous ne voulez pas l’accès aux autres utilisateurs :
bashchmod 770 partageDans ce cas :
- propriétaire : accès complet ;
- groupe : accès complet ;
- autres : aucun accès.
Le point important est que les membres doivent appartenir au bon groupe. Sinon, même avec les bonnes permissions, l’accès ne correspondra pas au résultat attendu.
Dans un environnement multi-utilisateur, il est fréquent que l’administrateur règle aussi le groupe du dossier avec
chownou une commande associée au groupe, puis adapte les permissions. Sans cela, vous pouvez avoir un dossier bien ouvert au groupe… mais pas au bon groupe.- le propriétaire :
Comprendre et utiliser chown pour changer le propriétaire
La commande
chownsert à modifier le propriétaire d’un fichier ou d’un dossier. Elle peut aussi changer le groupe associé selon la syntaxe utilisée.La forme générale est :
bashchown utilisateur fichierExemple :
bashsudo chown alice document.txtCette commande attribue le fichier
document.txtà l’utilisateuralice.Pour changer à la fois l’utilisateur et le groupe :
bashsudo chown alice:projet document.txtAprès cela :
- le propriétaire devient
alice; - le groupe devient
projet.
Vérifiez le résultat avec :
bashls -l document.txtPourquoi
chownest-il important ? Parce que les permissions s’appliquent différemment selon que l’on est :- le propriétaire ;
- membre du groupe ;
- simple autre utilisateur.
Autrement dit, avoir des permissions correctes ne suffit pas toujours : si le fichier appartient au mauvais utilisateur ou au mauvais groupe, le comportement réel peut être inattendu.
Dans de nombreux systèmes, changer le propriétaire nécessite des privilèges élevés, d’où l’usage fréquent de
sudo.- le propriétaire devient
Changer récursivement propriétaire ou permissions sur un dossier
Quand un dossier contient de nombreux sous-dossiers et fichiers, il peut être pratique d’appliquer un changement de manière récursive.
Pour changer le propriétaire d’un dossier et de tout son contenu :
bashsudo chown -R alice:projet partageL’option
-Rsignifie récursif. Elle parcourt le dossier et tous ses éléments internes.De la même manière, pour modifier les permissions sur toute une arborescence :
bashchmod -R 755 scriptsCette commande agit sur le dossier
scriptset sur tous les éléments qu’il contient.Attention : l’usage récursif doit être prudent. Appliquer
755à tout un arbre ne distingue pas les fichiers des dossiers, alors que leurs besoins peuvent être différents. Par exemple :- un dossier a souvent besoin du bit
xpour être traversé ; - un fichier texte n’a pas forcément besoin d’être exécutable.
C’est pourquoi l’option récursive est pratique, mais potentiellement brutale si elle est lancée sans réflexion. Sur un répertoire de test, cela ne pose pas de problème. Sur des données de production, il faut vérifier avant.
Bon réflexe : commencez par afficher l’état avec
ls -letls -ld, puis appliquez la commande sur un petit sous-ensemble si vous n’êtes pas certain du résultat.- un dossier a souvent besoin du bit
Comprendre umask : les permissions par défaut à la création
La commande
umaskne modifie pas directement les permissions d’un fichier existant. Elle définit un masque qui influence les permissions par défaut au moment de la création de nouveaux fichiers et dossiers.Affichez votre valeur actuelle :
bashumaskOu sous une forme plus lisible :
bashumask -SSelon le système, une valeur courante peut être
0022. L’idée générale est la suivante :- les nouveaux fichiers ne reçoivent pas automatiquement tous les droits ;
- les nouveaux dossiers non plus ;
- l’umask retire certains droits par défaut.
En pratique, on rencontre souvent ces résultats :
- avec une umask de type
022, les fichiers sont souvent créés en644et les dossiers en755; - avec une umask plus restrictive comme
077, les fichiers sont souvent créés en600et les dossiers en700.
Cette logique est très utile pour adapter le niveau d’ouverture par défaut :
- sur un poste personnel, on peut vouloir des réglages standards ;
- sur un environnement sensible, on peut préférer des créations privées par défaut ;
- dans un espace collaboratif, une umask plus permissive pour le groupe peut être utile selon la politique définie.
L’umask ne remplace pas
chmod. Elle évite simplement d’avoir à corriger manuellement les permissions à chaque création.Tester l’effet d’umask avec des exemples concrets
Créez un dossier de test pour observer le comportement :
bashmkdir umask-demo cd umask-demoAffichez l’umask actuelle :
bashumask umask -SCréez ensuite un fichier et un dossier :
bashtouch fichier1 mkdir dossier1 ls -l ls -ld dossier1Notez les permissions obtenues.
Vous pouvez maintenant changer temporairement l’umask dans le shell courant :
bashumask 077Créez de nouveaux éléments :
bashtouch fichier2 mkdir dossier2 ls -l ls -ld dossier2Avec une valeur restrictive, vous constaterez en général que les nouveaux éléments sont privés au propriétaire.
Rétablissez ensuite une valeur plus courante pour continuer à travailler :
bashumask 022Points essentiels à retenir :
umaskagit sur les nouvelles créations ;- elle n’a pas d’effet rétroactif sur les fichiers existants ;
- changer l’umask dans un terminal modifie en principe le comportement de ce shell et des processus lancés depuis lui.
Si vous créez souvent des fichiers confidentiels, une umask restrictive peut vous éviter des oublis. À l’inverse, si vous travaillez en équipe sur des répertoires partagés, il faut réfléchir au niveau de collaboration souhaité avant de choisir une valeur.
Méthode pratique pour diagnostiquer une erreur Permission denied
L’erreur Permission denied est l’un des messages les plus fréquents en ligne de commande. Pour la résoudre proprement, il faut éviter de lancer immédiatement un
chmod 777. Cette réaction est simple, mais souvent excessive et risquée.Voici une méthode de diagnostic en quatre étapes.
1. Identifier l’élément bloquant
Regardez si le problème concerne :
- la lecture d’un fichier ;
- l’écriture dans un fichier ;
- l’accès à un dossier ;
- l’exécution d’un script.
2. Vérifier les permissions
bashls -l nom-fichier ls -ld nom-dossierDemandez-vous :
- suis-je le propriétaire ?
- fais-je partie du groupe ?
- les autres ont-ils les droits nécessaires ?
3. Vérifier la propriété
Un fichier peut avoir des permissions qui semblent correctes, mais appartenir à un autre utilisateur ou à un autre groupe. Dans ce cas, la catégorie effective n’est pas celle que vous imaginez.
4. Corriger au niveau minimal nécessaire
Selon le cas :
- ajoutez seulement le droit manquant avec
chmod; - corrigez le propriétaire ou le groupe avec
chownsi nécessaire ; - adaptez l’umask pour les créations futures si le problème se répète systématiquement.
Exemple : si un script personnel ne s’exécute pas, il suffit souvent de faire :
bashchmod u+x monscript.shPas besoin de l’ouvrir à tout le monde.
Exemple : si un dossier partagé ne permet pas l’écriture au groupe, une correction ciblée comme :
bashchmod g+w partageest bien plus raisonnable qu’un réglage global permissif.
Erreurs fréquentes & dépannage
- Confondre fichier et dossier : le droit
xn’a pas le même sens sur un script et sur un répertoire. - Utiliser
chmod 777sans réflexion : cela ouvre très largement l’accès et constitue rarement une bonne solution durable. - Oublier la propriété : des permissions correctes ne suffisent pas si le fichier appartient au mauvais utilisateur ou au mauvais groupe.
- Appliquer
-Rtrop vite : un changement récursif peut affecter une grande arborescence plus fortement que prévu. - Penser qu’umask modifie l’existant : elle agit sur les nouvelles créations, pas sur les fichiers déjà présents.
- Rendre exécutable un fichier qui ne doit pas l’être : tous les fichiers n’ont pas besoin du bit
x. - Négliger les droits sur les dossiers parents : même si un fichier a de bonnes permissions, l’accès peut échouer si un dossier du chemin bloque la traversée.
Astuces & pour aller plus loin
- Utilisez
ls -letls -ldcomme réflexe avant toute correction. - Privilégiez le moindre privilège : donnez seulement les droits réellement nécessaires.
- Le mode symbolique de
chmodest idéal pour apprendre ; le mode numérique est très pratique ensuite pour aller vite. - Pour un fichier privé, pensez souvent à
600. Pour un dossier privé, pensez souvent à700. - Pour un script à exécuter, ajoutez simplement
u+xsi vous êtes le seul à l’utiliser. - Testez vos commandes dans un dossier de démonstration avant de les appliquer à des données importantes.
- Si vous gérez souvent des fichiers sensibles, vérifiez votre
umaskafin de réduire les corrections manuelles.
Questions fréquentes
Quelle est la différence entre chmod et chown ?
chmod modifie les permissions d’un fichier ou d’un dossier, c’est-à-dire les droits de lecture, d’écriture et d’exécution. chown modifie le propriétaire, et éventuellement le groupe, de cet élément. Les deux sont liés, car les permissions n’ont pas le même effet selon que l’on est propriétaire, membre du groupe ou autre utilisateur.
Quand faut-il utiliser chmod 755 ?
755 est souvent utilisé pour des dossiers ou des scripts qui doivent être exécutables et lisibles par d’autres utilisateurs. Le propriétaire a tous les droits, tandis que le groupe et les autres ont lecture et exécution. Il ne faut pas l’appliquer automatiquement à tous les fichiers, surtout s’ils n’ont pas besoin d’être exécutables.
Pourquoi un dossier a-t-il besoin du droit x ?
Sur un dossier, le droit x permet de le traverser, donc d’y entrer et d’accéder aux éléments qu’il contient. Sans ce droit, on ne peut pas utiliser normalement le répertoire, même si d’autres permissions semblent présentes.
À quoi sert umask si chmod existe déjà ?
chmod sert à corriger ou définir les permissions d’éléments existants. umask sert à influencer les permissions par défaut lors de la création de nouveaux fichiers et dossiers. Elle permet d’éviter des réglages manuels répétés.
Est-ce une bonne idée d’utiliser chmod 777 pour résoudre un blocage ?
En général, non. 777 donne lecture, écriture et exécution à tout le monde. C’est souvent trop permissif et cela peut exposer inutilement vos fichiers ou dossiers. Il vaut mieux identifier le droit réellement manquant et l’ajouter de façon ciblée.
Pourquoi je ne peux pas exécuter mon script alors que je peux le lire ?
Parce que la lecture et l’exécution sont deux droits différents. Un script peut être lisible sans être exécutable. Dans ce cas, ajoutez le droit d’exécution avec une commande comme chmod u+x script.sh si c’est bien ce que vous souhaitez.
Conclusion
Les permissions Linux reposent sur une logique simple en apparence, mais très puissante dans la pratique : qui est le propriétaire, quel est le groupe, et quels droits sont accordés. Une fois cette structure comprise, les commandes chmod, chown et umask deviennent beaucoup plus naturelles à utiliser.
Retenez surtout trois idées :
chmodsert à ajuster les droits ;chownsert à corriger la propriété ;umasksert à définir un comportement par défaut pour les nouvelles créations.
En pratique, prenez l’habitude de vérifier l’état avec ls -l, d’appliquer le minimum de permissions nécessaires, et d’éviter les changements trop larges sans diagnostic. C’est cette discipline qui permet de travailler proprement sur Linux, que ce soit sur un poste personnel, un serveur ou un environnement partagé.
Avec ces bases, vous êtes désormais en mesure de lire des permissions, comprendre leur effet, corriger des erreurs d’accès courantes et mettre en place des réglages plus sûrs au quotidien.