Débutant

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.

Débuter avec les permissions Linux : chmod, chown, umask

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, mkdir et touch.
  • Disposer d’un compte utilisateur sur une machine Linux, locale ou distante.
  • Optionnel : avoir accès à sudo pour 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

  1. Comprendre ce que protègent les permissions Linux

    Écran d’un ordinateur affichant un terminal Linux avec la commande ls -l et une liste de fichiers et dossiers avec leurs permissions.
    Terminal Linux montrant un script shell dont la permission d’exécution est ajoutée avec chmod u+x.

    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, r permet de lire le contenu, w de le modifier, et x de l’exécuter si c’est un script ou un binaire ;
    • sur un dossier, r permet de lister son contenu, w de créer, supprimer ou renommer des éléments à l’intérieur, et x d’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.

  2. Lire les permissions avec ls -l

    Terminal Linux montrant un test de umask avec création de fichiers ou dossiers et affichage des permissions obtenues.

    La commande la plus courante pour afficher les permissions est :

    bash
    ls -l

    Créez un dossier de test puis quelques fichiers :

    bash
    mkdir permissions-demo
    cd permissions-demo
    touch notes.txt
    mkdir projet
    ls -l

    Vous verrez une sortie du genre :

    bash
    -rw-r--r-- 1 utilisateur utilisateur 0 notes.txt
    drwxr-xr-x 2 utilisateur utilisateur 4096 projet

    Décomposons la première colonne :

    • le premier caractère indique le type : - pour un fichier, d pour 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 :

    bash
    ls -la

    Et pour voir les permissions d’un dossier sans lister son contenu, utilisez :

    bash
    ls -ld projet
  3. 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 x sur 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 r mais sans x peut parfois être listé mais pas traversé normalement ;
    • un dossier avec x mais sans r peut ê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.

  4. Modifier les permissions avec chmod en mode symbolique

    La commande chmod sert à modifier les permissions. Le mode symbolique est souvent le plus simple pour débuter car il est explicite.

    La structure générale est :

    bash
    chmod qui opération droits fichier

    Les é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 :

    bash
    chmod u+x script.sh
    chmod g-w notes.txt
    chmod o-r secret.txt
    chmod a+r guide.txt

    Voici ce que signifient ces commandes :

    • chmod u+x script.sh ajoute le droit d’exécution au propriétaire ;
    • chmod g-w notes.txt retire l’écriture au groupe ;
    • chmod o-r secret.txt retire la lecture aux autres ;
    • chmod a+r guide.txt donne la lecture à tout le monde.

    Vous pouvez combiner plusieurs règles :

    bash
    chmod u+rwx,g+rx,o-rwx fichier.txt

    Cette écriture permet de faire plusieurs changements d’un coup.

    L’opérateur = est très utile quand on veut fixer un état précis :

    bash
    chmod u=rw,g=r,o= notes.txt

    Ici :

    • 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.

  5. Utiliser chmod en mode numérique avec les valeurs 4, 2 et 1

    Le mode numérique repose sur une addition simple :

    • r = 4
    • w = 2
    • x = 1

    On additionne les valeurs pour chaque catégorie :

    • 7 = 4 + 2 + 1 = rwx
    • 6 = 4 + 2 = rw-
    • 5 = 4 + 1 = r-x
    • 4 = r--
    • 0 = ---

    On écrit ensuite trois chiffres dans l’ordre :

    • propriétaire ;
    • groupe ;
    • autres.

    Exemples fréquents :

    bash
    chmod 644 notes.txt
    chmod 600 secret.txt
    chmod 755 script.sh
    chmod 700 prive

    Interprétation :

    • 644 : propriétaire en rw-, groupe en r--, autres en r-- ;
    • 600 : seul le propriétaire peut lire et écrire ;
    • 755 : propriétaire en rwx, groupe en r-x, autres en r-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 :

    • 644 pour des fichiers de données courants ;
    • 755 pour des scripts ou des dossiers accessibles ;
    • 600 pour des fichiers sensibles ;
    • 700 pour des répertoires privés.

    Attention toutefois : ces valeurs ne sont pas des obligations universelles. Elles doivent correspondre au besoin réel.

  6. Cas pratique : rendre un script exécutable correctement

    Supposons que vous créez un script shell :

    bash
    echo 'echo Bonjour' > hello.sh
    ls -l hello.sh

    Le fichier sera généralement créé sans droit d’exécution. Si vous essayez :

    bash
    ./hello.sh

    vous risquez d’obtenir un message de refus d’exécution.

    Pour autoriser l’exécution au propriétaire :

    bash
    chmod u+x hello.sh

    Ou pour donner l’exécution à tous :

    bash
    chmod 755 hello.sh

    Vérifiez ensuite :

    bash
    ls -l hello.sh

    Le résultat attendu ressemblera à :

    bash
    -rwxr-xr-x 1 utilisateur utilisateur 13 hello.sh

    Vous pourrez alors lancer :

    bash
    ./hello.sh

    Bon 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 x uniquement lorsqu’il s’agit réellement d’un programme, d’un script ou d’un besoin spécifique.

  7. Cas pratique : protéger un fichier personnel ou sensible

    Imaginons un fichier contenant des informations privées :

    bash
    touch sauvegarde.txt
    ls -l sauvegarde.txt

    Par 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 :

    bash
    chmod 600 sauvegarde.txt

    Vérifiez :

    bash
    ls -l sauvegarde.txt

    Vous 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 :

    bash
    mkdir coffre
    chmod 700 coffre
    ls -ld coffre

    Avec 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.

  8. 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 :

    bash
    mkdir partage
    ls -ld partage

    Si vous souhaitez que le groupe puisse lire et écrire dans ce dossier, vous pouvez faire :

    bash
    chmod 775 partage

    Interprétation :

    • le propriétaire : rwx ;
    • le groupe : rwx ;
    • les autres : r-x.

    Si vous ne voulez pas l’accès aux autres utilisateurs :

    bash
    chmod 770 partage

    Dans 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 chown ou 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.

  9. Comprendre et utiliser chown pour changer le propriétaire

    La commande chown sert à 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 :

    bash
    chown utilisateur fichier

    Exemple :

    bash
    sudo chown alice document.txt

    Cette commande attribue le fichier document.txt à l’utilisateur alice.

    Pour changer à la fois l’utilisateur et le groupe :

    bash
    sudo chown alice:projet document.txt

    Après cela :

    • le propriétaire devient alice ;
    • le groupe devient projet.

    Vérifiez le résultat avec :

    bash
    ls -l document.txt

    Pourquoi chown est-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.

  10. 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 :

    bash
    sudo chown -R alice:projet partage

    L’option -R signifie 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 :

    bash
    chmod -R 755 scripts

    Cette commande agit sur le dossier scripts et 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 x pour ê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 -l et ls -ld, puis appliquez la commande sur un petit sous-ensemble si vous n’êtes pas certain du résultat.

  11. Comprendre umask : les permissions par défaut à la création

    La commande umask ne 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 :

    bash
    umask

    Ou sous une forme plus lisible :

    bash
    umask -S

    Selon 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 en 644 et les dossiers en 755 ;
    • avec une umask plus restrictive comme 077, les fichiers sont souvent créés en 600 et les dossiers en 700.

    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.

  12. Tester l’effet d’umask avec des exemples concrets

    Créez un dossier de test pour observer le comportement :

    bash
    mkdir umask-demo
    cd umask-demo

    Affichez l’umask actuelle :

    bash
    umask
    umask -S

    Créez ensuite un fichier et un dossier :

    bash
    touch fichier1
    mkdir dossier1
    ls -l
    ls -ld dossier1

    Notez les permissions obtenues.

    Vous pouvez maintenant changer temporairement l’umask dans le shell courant :

    bash
    umask 077

    Créez de nouveaux éléments :

    bash
    touch fichier2
    mkdir dossier2
    ls -l
    ls -ld dossier2

    Avec 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 :

    bash
    umask 022

    Points essentiels à retenir :

    • umask agit 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.

  13. 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

    bash
    ls -l nom-fichier
    ls -ld nom-dossier

    Demandez-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 chown si 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 :

    bash
    chmod u+x monscript.sh

    Pas besoin de l’ouvrir à tout le monde.

    Exemple : si un dossier partagé ne permet pas l’écriture au groupe, une correction ciblée comme :

    bash
    chmod g+w partage

    est bien plus raisonnable qu’un réglage global permissif.

Erreurs fréquentes & dépannage

  • Confondre fichier et dossier : le droit x n’a pas le même sens sur un script et sur un répertoire.
  • Utiliser chmod 777 sans 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 -R trop 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 -l et ls -ld comme réflexe avant toute correction.
  • Privilégiez le moindre privilège : donnez seulement les droits réellement nécessaires.
  • Le mode symbolique de chmod est 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+x si 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 umask afin 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 :

  • chmod sert à ajuster les droits ;
  • chown sert à corriger la propriété ;
  • umask sert à 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.

Commentaires· Aucun commentaire pour l'instant

Soyez le premier à réagir.

Laisser un commentaire