Document

SUBSCRIBE TO GET FULL ACCESS TO THE E-BOOKS FOR FREE 🎁SUBSCRIBE NOW

Professional Dropdown with Icon

SUBSCRIBE NOW TO GET FREE ACCESS TO EBOOKS

Gérer fichiers et permissions Linux : chmod, chown et ls -l

À la fin de ce tutoriel, vous saurez lire une ligne ls -l, poser des permissions Linux avec chmod (octal et symbolique), changer propriétaire/groupe avec chown/chgrp, comprendre umask, et manipuler fichiers en sécurité dans un lab /tmp.

Niveau : Débutant · Temps estimé : 40–50 min · Versions testées : Ubuntu 22.04 / 24.04, Debian 12 ; notes Rocky/Alma 9 · Dernière vérification : 2026-09-10

Slug proposé : linux-fichiers-permissions · Série : P5 Linux Basics · Remplace / fusionne : N/A — création

Prérequis

  • Avoir suivi Terminal Linux : navigation (pwd, ls, cd, chemins)
  • Une machine Linux : Ubuntu 22.04/24.04 ou Debian recommandés ; Rocky/Alma 9 OK
  • Compte non-root avec sudo (uniquement pour chown/chgrp de démo)
  • Être à l’aise pour taper des commandes dans un terminal

Coût estimé : 0 €. Tout le lab vit dans /tmp/lab-perms — jetable, sans impact système.

Ce que nous allons construire

/tmp/lab-perms/
  ├── docs/notes.txt      (droits lecture/écriture)
  ├── bin/hello.sh        (bit exécutable)
  ├── secret.env          (600 — owner only)
  └── shared/             (groupe + sticky bit aperçu)
Lecture ls -l → chmod → chown/chgrp → umask → cp/mv/rm

(Schéma à remplacer par une image locale Excalidraw / draw.io, alt : « Décryptage ls -l, chmod octal/symbolique et lab /tmp/lab-perms ».)

Deuxième chapitre de Linux Basics. Les droits fichiers Linux rappellent un peu les politiques IAM AWS (qui peut faire quoi sur quelle ressource) — voir IAM users, groupes, rôles pour l’analogie cloud.

Étape 1 — Créer le lab et lire les permissions avec ls -l

mkdir -p /tmp/lab-perms/{docs,bin,shared}
cd /tmp/lab-perms
touch docs/notes.txt bin/hello.sh secret.env shared/readme.txt
echo 'echo "hello perms"' > bin/hello.sh
echo 'note lab' > docs/notes.txt
ls -l
ls -ld docs bin shared

Exemple de ligne (les colonnes varient peu entre Ubuntu et Rocky) :

-rw-rw-r-- 1 haythem haythem 10 Sep 10 17:00 docs/notes.txt
Colonne Exemple Sens
Type + mode -rw-rw-r-- - fichier, d dossier, l lien ; puis 9 bits rwx (user/group/other)
Liens 1 Nombre de hard links
Owner haythem Propriétaire
Group haythem Groupe
Taille 10 Octets (ajoutez -h pour K/M)
Date Sep 10 17:00 Dernière modification
Nom docs/notes.txt Chemin relatif ici

rwx : r lire, w écrire, x exécuter (fichier) ou traverser (dossier). Sans x sur un répertoire, vous ne pouvez pas cd dedans même si r est présent.

Sortie attendue après ls -l (extrait) : fichiers en -rw-…, dossiers en d…, owner = votre user. Ajoutez ls -lah pour tailles lisibles et fichiers cachés (.).

Tip DevOps : avant un chmod en prod ou CI, photographiez l’existant : ls -l chemin ou stat -c '%a %n' chemin. Rollback = remettre le mode noté, pas 777 « pour que ça marche ».

Étape 2 — chmod octal : 644, 755, 600

Chaque triplet rwx vaut un chiffre : r=4, w=2, x=1. On additionne.

Mode Binaire / lettres Usage courant
644 rw-r--r-- Fichier texte / config lisible
755 rwxr-xr-x Script ou dossier exécutable/traversable
600 rw------- Secret (clés, .env) — owner only
700 rwx------ Dossier privé owner
cd /tmp/lab-perms
chmod 644 docs/notes.txt
chmod 600 secret.env
chmod 755 bin/hello.sh
chmod 755 docs bin shared
ls -l docs/notes.txt secret.env bin/hello.sh
bash bin/hello.sh

Vérifiez : secret.env doit afficher -rw-------. Sur Rocky/Alma, la syntaxe chmod est identique.

Contrôle octal rapide (Ubuntu/Debian/Rocky) :

stat -c '%a %n' /tmp/lab-perms/secret.env /tmp/lab-perms/bin/hello.sh
# Attendu : 600 …/secret.env et 755 …/hello.sh

Étape 3 — chmod symbolique : u+x, g-w, o=

Forme : chmod QuiQuoiSymbole où Qui = u/g/o/a, Quoi = +/-/=, Symbole = r/w/x.

cd /tmp/lab-perms
chmod u+x bin/hello.sh          # ajoute exécutable au owner
chmod g-w docs/notes.txt        # retire écriture au groupe
chmod o= docs/notes.txt         # other : aucun droit
chmod a+r docs/notes.txt        # tous : lecture
ls -l docs/notes.txt bin/hello.sh

Astuce : = fixe exactement le triplet ; +/- modifient. Pratique en une ligne : chmod u=rwx,g=rx,o= bin/hello.sh.

Étape 4 — chown et chgrp (lab safe avec sudo)

chown change le propriétaire ; chgrp (ou chown :groupe) change le groupe. Sur les fichiers des autres (ou pour tester), il faut souvent sudo.

cd /tmp/lab-perms
id
# Remplacez $USER si besoin ; on reste owner de notre lab
sudo chown "$USER":"$USER" secret.env
sudo chgrp "$USER" shared/readme.txt
ls -l secret.env shared/readme.txt

Quand utiliser chown ? Après un sudo cp qui a créé un fichier root, ou pour donner un dossier d’app à un utilisateur de service. Ne chown-nez jamais / ou /etc « pour tester ».

Sur Rocky/Alma 9 : mêmes commandes ; le groupe admin sudo s’appelle souvent wheel (vu au tuto utilisateurs).

Piège lab : un pipeline qui fait sudo cp vers /var/www laisse souvent des fichiers root:root. Le service (nginx, node) échoue ensuite en écriture. Corrigez ciblé : sudo chown -R www-data:www-data /var/www/app (adaptez user/groupe), jamais un chown -R depuis /.

Étape 5 — Comprendre umask

umask masque des bits à la création de fichiers/dossiers. Valeur courante 0022 → fichiers 644, dossiers 755 (base théorique 666/777 moins le masque).

umask
umask 0077
touch /tmp/lab-perms/umask-prive.txt
mkdir /tmp/lab-perms/umask-prive-dir
ls -ld /tmp/lab-perms/umask-prive.txt /tmp/lab-perms/umask-prive-dir
umask 0022

Avec 0077, le nouveau fichier est en 600 / dossier 700 : rien pour group/other. Remettez 0022 (ou votre défaut) en fin de session pour ne pas surprendre d’autres outils.

Étape 6 — Sticky bit et setuid (aperçu court)

Trois bits « spéciaux » existent ; retenez l’idée, pas un cours sécu.

  • Sticky bit (chmod +t ou 1755) sur un dossier : seul le owner d’un fichier (ou root) peut le supprimer — classique sur /tmp (drwxrwxrwt).
  • setuid / setgid : le binaire s’exécute avec l’identité du owner/groupe du fichier (ex. passwd). Ne les activez pas sur vos scripts de lab.
ls -ld /tmp
chmod 1777 /tmp/lab-perms/shared
ls -ld /tmp/lab-perms/shared

Le t en fin de mode sur shared signale le sticky bit. Suffisant pour un junior DevOps ; le durcissement avancé viendra plus tard.

Sortie attendue : drwxrwxrwt (ou 1777 en octal via stat -c '%a'). Sans sticky, n’importe quel user avec w sur le dossier peut supprimer le fichier d’un autre — d’où l’intérêt de /tmp.

Étape 7 — mkdir, touch, cp, mv, rm (prudence)

cd /tmp/lab-perms
mkdir -p archive/2026
touch docs/todo.txt
cp docs/notes.txt archive/2026/notes.bak
mv docs/todo.txt docs/todo-renamed.txt
cp -r docs docs-copie
# suppression ciblée — jamais rm -rf / 
rm docs/todo-renamed.txt
rm -r docs-copie
ls -la
Commande Rôle Prudence
mkdir -p Crée dossiers (parents inclus) OK
touch Crée fichier vide / maj date OK
cp / cp -r Copie fichier / arbre Vérifier destination
mv Déplace ou renomme Écrase si cible existe
rm / rm -r Supprime Pas de / ; préférez /tmp/...

Étape 8 — Vérification

cd /tmp/lab-perms
ls -l
stat -c '%a %n' secret.env bin/hello.sh docs/notes.txt
namei -l /tmp/lab-perms/bin/hello.sh
bash bin/hello.sh
umask

Validé si : vous lisez type+rwx+owner sur ls -l, secret.env est en 600, hello.sh s’exécute, et vous savez expliquer umask en une phrase.

Nettoyage — lab jetable

rm -rf /tmp/lab-perms
# umask 0022   # si vous l’aviez changé

Rien d’autre à désinstaller. Jamais rm -rf / ni chmod -R 777 /.

Erreurs fréquentes

Symptôme Cause Correction
Permission denied sur script Pas de bit x chmod u+x fichier ou bash fichier
Permission denied sur cd dossier Dossier sans x chmod u+x dossier
Fichier root après sudo cp Owner = root sudo chown "$USER":"$USER" fichier
chmod 777 partout Réflexe dangereux Préférer 644/755/600
Secrets en 644 umask / défaut trop ouvert chmod 600 + umask 0077 le temps du lab
cp -r puis droits bizarres Copie hors lab / ACL Rester dans /tmp/lab-perms ; ls -l après copie
Script OK en bash f mais pas ./f Pas de x ou shebang chmod u+x f + #!/usr/bin/env bash en L1

Quiz (3 questions)

1. Que signifie le premier caractère d dans drwxr-xr-x ?
– A. Fichier caché
– B. Répertoire (directory)
– C. Lien symbolique

2. Quelle est la différence typique entre chmod 644 et chmod 755 ?
– A. 644 = fichier lisible ; 755 ajoute l’exécution (script/dossier)
– B. 755 retire tous les droits other
– C. Aucune, ce sont des alias

3. Quand utiliser chown en lab ?
– A. Pour chaque ls
– B. Pour corriger un owner (ex. fichier créé en root) sans toucher au système entier
– C. À la place de chmod

Réponses : 1‑B · 2‑A · 3‑B

FAQ

Que signifie rwx dans ls -l ?
Les neuf bits après le type se lisent par triplets : user, group, other. r = lecture, w = écriture, x = exécution (fichier) ou traversée (dossier). Exemple : -rwxr-xr-x = owner tout, groupe et other lecture+exécution.

Différence chmod 644 et 755 ?
644 (rw-r--r--) convient aux fichiers de données : owner lit/écrit, les autres lisent. 755 (rwxr-xr-x) ajoute x : scripts exécutables et répertoires traversables. Les secrets passent plutôt en 600.

Quand utiliser chown ?
Quand le propriétaire (ou le groupe) est incorrect — souvent après un sudo qui a créé un fichier en root. Utilisez sudo chown user:group fichier de façon ciblée ; ne « réparez » jamais tout le disque avec un chown -R sur /.

Pourquoi umask 0022 et pas 0000 ?
0000 créerait des fichiers monde-inscriptibles (666/777) — inacceptable hors bac à sable extrême. 0022 (défaut courant) retire write à group/other : fichiers 644, dossiers 755. Pour un secret local de lab, 0077 le temps de la session est plus strict.

Pour aller plus loin

  • man chmod, man chown, man umask
  • Prochain tuto : utilisateurs, groupes et sudo sans rester root au quotidien

Maillage série Linux Basics (P5)

← Précédent Terminal Linux : navigation
→ Suivant Utilisateurs Linux et sudo
Hub Linux Basics
Aussi Analogie droits cloud : IAM users, groupes, rôles

Meta publication (à remplir dans Rank Math / SEO)

  • Title SEO : Permissions Linux : chmod, chown, umask et ls -l (2026)
  • Meta description (≤ 155) : Apprenez à lire ls -l, poser des droits avec chmod/chown, comprendre rwx et umask. Lab DevOps safe dans /tmp.
  • Focus keyphrase : permissions linux
  • KW secondaires : chmod, chown, umask, ls -l, droits fichiers linux
  • Schemas Rank Math : Article + HowTo (étapes lab) + FAQ (3 questions ci-dessus)
  • Image mise en avant : assets/web/devopelastichayway/cover-linux-fichiers-permissions-1200x630.webp (Visuels Linux — WebP 1200×630)
  • Catégorie : Linux · Niveau : Débutant
  • Slug : linux-fichiers-permissions

← Retour parcours Linux — Basics, Admin, Réseau & Sécurité, Shell & Automation.

Ressources liées sur le site