Permissions & Propriété des Fichiers Linux
Chaque fichier et répertoire Linux a un propriétaire (user + group) et des permissions contrôlant qui peut lire, écrire ou exécuter ce fichier.
Les 3 types de droits
| Droit | Symbole | Fichier | Répertoire |
|---|---|---|---|
| Lecture | r | Lire le contenu | Lister les fichiers (ls) |
| Écriture | w | Modifier le fichier | Créer/supprimer des fichiers dans le dossier |
| Exécution | x | Exécuter le fichier | Entrer dans le répertoire (cd) |
| Aucun droit | - | — | — |
Les 3 catégories d'accès
| Catégorie | Symbole | Description |
|---|---|---|
| Owner (Propriétaire) | u | L'utilisateur qui a créé le fichier |
| Group (Groupe) | g | Le groupe propriétaire du fichier |
| Others (Autres) | o | Tous les autres utilisateurs |
Par défaut, le propriétaire = l'utilisateur qui a créé le fichier. Le groupe propriétaire = le groupe primaire de cet utilisateur.
Lire les permissions avec ls -l
ls -l
# Exemple de sortie :
drwxrwxr-x 2 nana nana 4096 Mai 7 11:00 api/
-rw-rw-r-- 1 nana nana 320 Mai 3 14:57 config.yaml
-rw-rw-r-- 1 nana nana 68 Mai 3 14:27 Readme.md
-rw-rw-r-- 1 admin devops 0 Mai 7 13:06 test.txt
Décodage de la chaîne de permissions
d r w x r w x r - x
│ │ │ │ │ │ │ │ │ │
│ └─┴─┘ └─┴─┘ └─┴─┘
│ Owner Group Others
│
└── Type : - (fichier) d (dossier) l (lien) c (caractère)
Exemple : drwxrwxr-x
d→ répertoirerwx→ Owner : lecture + écriture + exécutionrwx→ Group : lecture + écriture + exécutionr-x→ Others : lecture + exécution seulement (pas d'écriture)
Changer les permissions : chmod
1. Mode symbolique — Ajouter / Retirer
# Syntaxe : chmod [u/g/o/a][+/-/=][r/w/x] fichier
chmod g-w config.yaml # Retirer le droit d'écriture du groupe
chmod u+x script.sh # Ajouter le droit d'exécution au propriétaire
chmod o-r fichier.txt # Retirer la lecture aux autres
chmod a+x script.sh # Ajouter l'exécution à TOUS (all)
2. Mode symbolique — Définir (remplace tout)
chmod g=rwx config.yaml # Groupe : lire + écrire + exécuter
chmod o=r-x config.yaml # Autres : lire + exécuter seulement
chmod u=rw,g=r,o= fichier # Propriétaire rw, groupe r, autres rien
3. Mode numérique (Absolu)
Les permissions sont représentées par des chiffres :
| Nombre | Permission | Symbole |
|---|---|---|
| 0 | Aucune permission | --- |
| 1 | Exécution | --x |
| 2 | Écriture | -w- |
| 3 | Écriture + Exécution | -wx |
| 4 | Lecture | r-- |
| 5 | Lecture + Exécution | r-x |
| 6 | Lecture + Écriture | rw- |
| 7 | Lecture + Écriture + Exécution | rwx |
# chmod [Owner][Group][Others] fichier
chmod 740 script.sh
# │││
# ││└─ Others : 0 = aucune permission (---)
# │└── Group : 4 = lecture seulement (r--)
# └─── Owner : 7 = tout (rwx)
chmod 755 script.sh # rwxr-xr-x (standard pour scripts exécutables)
chmod 644 fichier.txt # rw-r--r-- (standard pour fichiers texte)
chmod 600 ~/.ssh/id_rsa # rw------- (clé privée SSH)
chmod 777 dossier/ # rwxrwxrwx (à éviter ! tout le monde peut tout faire)
Changer le propriétaire : chown
# Changer le propriétaire
chown alice fichier.txt
# Changer le propriétaire et le groupe
chown alice:devops fichier.txt
# Changer récursivement (dossier et tout son contenu)
chown -R alice:devops projet/
# Changer seulement le groupe
chgrp devops fichier.txt
Exemples pratiques courants
# Rendre un script exécutable
chmod +x deploy.sh
chmod u+x deploy.sh
# Protéger un fichier de configuration (seulement le propriétaire)
chmod 600 .env
chmod 600 ~/.ssh/id_rsa
# Standard pour fichiers web (nginx/apache)
chmod 644 index.html
chmod 755 /var/www/html/
# Dossier partagé entre membres d'un groupe
chmod 770 projet-devops/
chown alice:devops projet-devops/
# Voir les permissions avant/après
ls -la fichier.txt
Mémo numérique
Permission Valeur Exemple complet
──────────────────────────────────
rwx 7 chmod 777 (tous les droits à tous)
rw- 6 chmod 644 (fichier texte standard)
r-x 5 chmod 755 (script/dossier exécutable)
r-- 4 chmod 444 (lecture seule)
-wx 3
-w- 2
--x 1
--- 0
À retenir
- 3 droits : r (4) = lire, w (2) = écrire, x (1) = exécuter
- 3 catégories : u (owner), g (group), o (others)
ls -l= afficher les permissions sous formedrwxrwxr-xchmod 755 script.sh= rwxr-xr-x (mode numérique)chmod g-w fichier= retirer l'écriture du groupe (mode symbolique)chown user:group fichier= changer propriétaire et groupe- 600 = clé privée SSH ; 644 = fichier texte ; 755 = script/dossier
- 777 = à éviter en production (tout le monde peut tout faire)