11. Introduction aux permissions : Les bases de chmod
Les permissions de fichiers sont cruciales sous Linux pour la sécurité et le fonctionnement (surtout pour les scripts). Les permissions définissent qui peut faire quoi avec un fichier ou un répertoire.
Visualiser les permissions (La sortie de ls -l)
Lorsque vous utilisez ls -l, les 10 premiers caractères définissent les permissions :
-rwxr-xr--
- Premier caractère (
-oud) : Type de fichier (-pour un fichier,dpour un répertoire). - 3 caractères suivants (rwx) : Permissions pour l'Utilisateur (Propriétaire).
- 3 caractères suivants (r-x) : Permissions pour le Groupe.
- 3 derniers caractères (r--) : Permissions pour les Autres (Tout le monde).
| Caractère | Signification |
|---|---|
r | Read (lire le contenu) |
w | Write (modifier ou supprimer) |
x | Execute (exécuter comme un programme/script) |
- | Permission refusée |
Changer les permissions (chmod)
chmod (Change Mode) modifie les permissions. Nous utilisons souvent la notation octale (numérique) :
| Permission | Valeur Octale |
|---|---|
Lire (r) | 4 |
Écrire (w) | 2 |
Exécuter (x) | 1 |
Les permissions totales sont la somme des valeurs (ex : rwx = 4+2+1 = 7).
Ensembles de permissions courants :
- 777 (rwxrwxrwx) : Permission complète pour tout le monde (Rarement recommandé).
- 755 (rwxr-xr-x) : Le propriétaire peut lire/écrire/exécuter ; le groupe/les autres peuvent lire/exécuter.
- 644 (rw-r--r--) : Le propriétaire peut lire/écrire ; le groupe/les autres peuvent seulement lire.
Exemple : Rendre un script exécutable
Pour exécuter un script, il doit avoir la permission d'exécution (x) :
bash $ touch script.sh $ ls -l script.sh -rw-rw-rw- 1 u0_a... u0_a... 0 Jun 1 10:00 script.sh
Changer les permissions à 755 (User : rwx, Group/Other : r-x)
$ chmod 755 script.sh
$ ls -l script.sh -rwxr-xr-x 1 u0_a... u0_a... 0 Jun 1 10:00 script.sh