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
Signification de 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.
Pour les dossiers :
  • 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 (utiliser cd) et d'accéder aux fichiers à l'intérieur (si les permissions des fichiers le permettent).

Explication des champs

  1. 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).
  2. Nombre de liens : Nombre de références à cet élément.
  3. Propriétaire : Nom de l'utilisateur propriétaire.
  4. Groupe : Nom du groupe assigné.
  5. Taille : Taille de l'élément en octets.
  6. Date : Dernier accès ou modification.
  7. Nom : Nom du fichier ou répertoire.

Modifier les permissions

Utilisation de chmod

La commande chmod permet de modifier les permissions d'un fichier ou répertoire.

Syntaxe

chmod [options] mode fichier

Modes

  1. 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.
    
  2. 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.
    

Utilisation de chown

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

Utilisation de chgrp

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 de x 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 de x 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 de x 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.