Permissions
Introduction
Dans les systèmes basés sur Linux, les permissions permettent de contrôler qui peut accéder à quoi. Chaque fichier ou répertoire dispose de permissions associées à trois entités :
- Propriétaire : l'utilisateur qui a créé ou possède l'élément.
- Groupe : le groupe auquel le fichier ou répertoire est assigné.
- Autres : tous les autres utilisateurs.
Les permissions définissent les actions autorisées pour chaque entité :
- Lecture (r) : lire le contenu d'un fichier ou afficher un répertoire.
- Écriture (w) : modifier le contenu d'un fichier ou changer les fichiers dans un répertoire.
- Exécution (x) : exécuter un fichier exécutable ou entrer dans un répertoire.
Représentation des permissions
Les permissions sont visibles avec la commande ls -l
, qui affiche une ligne par fichier ou répertoire :
-rwxr-xr-- 1 utilisateur groupe 12345 date fichier
rwx
:
Pour les fichiers :
r
(read) : permission de lire le contenu du fichier.w
(write) : permission de modifier ou supprimer le fichier.x
(execute) : permission d'exécuter le fichier, comme un programme ou un script.
r
(read) : permission de lister le contenu du dossier.w
(write) : permission de créer, supprimer ou renommer des fichiers ou sous-dossiers à l'intérieur.x
(execute) : permission de pénétrer dans le dossier (utilisercd
) et d'accéder aux fichiers à l'intérieur (si les permissions des fichiers le permettent).
Explication des champs
- Type et permissions : Le premier caractère indique le type d'élément (
-
pour un fichier,d
pour un répertoire, etc.), suivi des permissions pour le propriétaire, le groupe et les autres.- Exemple :
-rwxr-xr--
rwx
: permissions du propriétaire (lecture, écriture, exécution).r-x
: permissions du groupe (lecture, exécution).r--
: permissions des autres (lecture uniquement).
- Exemple :
- Nombre de liens : Nombre de références à cet élément.
- Propriétaire : Nom de l'utilisateur propriétaire.
- Groupe : Nom du groupe assigné.
- Taille : Taille de l'élément en octets.
- Date : Dernier accès ou modification.
- Nom : Nom du fichier ou répertoire.
Modifier les permissions
chmod
Utilisation de
La commande chmod
permet de modifier les permissions d'un fichier ou répertoire.
Syntaxe
chmod [options] mode fichier
Modes
- Symbolique :
u
: propriétaire (user).g
: groupe.o
: autres (others).a
: tous (all).- Actions :
+
(ajout),-
(retrait),=
(définir).
Exemple :chmod u+x fichier # Ajoute l'exécution pour le propriétaire. chmod u+rw fichier # Ajoute la lecture et l'écriture pour le propriétaire. chmod g-w fichier # Retire l'écriture pour le groupe. chmod a=r fichier # Donne uniquement la lecture à tous.
- Octal :
- Chaque entité (u, g, o) est représentée par un chiffre (0 à 7) :
- Lecture : 4.
- Écriture : 2.
- Exécution : 1.
Exemple :chmod 755 fichier # rwx pour le propriétaire, r-x pour les autres. chmod 644 fichier # rw- pour le propriétaire, r-- pour les autres.
- Chaque entité (u, g, o) est représentée par un chiffre (0 à 7) :
chown
Utilisation de
La commande chown
permet de changer le propriétaire ou le groupe d'un fichier ou répertoire.
Syntaxe
chown [propriétaire][:groupe] fichier
Exemples :
chown alice fichier # Change le propriétaire en "alice".
chown alice:developers fichier # Change le propriétaire et le groupe.
chown :developers fichier # Change le groupe
chgrp
Utilisation de
La commande chgrp
modifie uniquement le groupe.
chgrp developers fichier
Permissions spéciales
Certains fichiers ou répertoires peuvent avoir des permissions supplémentaires :
Setuid
- Permet à un fichier exécutable d'être exécuté avec les privilèges de son propriétaire.
- Représenté par un
s
au lieu dex
dans les permissions du propriétaire. - Exemple :
chmod u+s fichier
Setgid
- Permet à un fichier ou répertoire d'être exécuté avec les privilèges de son groupe.
- Représenté par un
s
au lieu dex
dans les permissions du groupe. - Exemple :
chmod g+s fichier
Sticky Bit
- Appliqué aux répertoires pour que seuls le propriétaire ou root puissent supprimer leurs fichiers.
- Représenté par un
t
au lieu dex
dans les permissions des autres. - Exemple :
chmod +t dossier
Conclusion
Les permissions sont essentielles pour la sécurité et la gestion d'un système Linux. En comprenant leur fonctionnement et leur manipulation, vous pouvez contrôler précisément l'accès à vos fichiers et répertoires. Cela contribue à prévenir les erreurs et à protéger les données sensibles.