Aller au contenu

Contrôle de l'accès aux fichiers

·
redhat
Jérémy Norgol
Auteur
Jérémy Norgol
Consultant ingénieur Linux Devops
RH124 - Cet article fait partie d'une série.
Partie 17: Cet article

Permissions de fichier
#

Attribution de droit explicite
#

chown - Modification des droits du propriétaire et du groupe chmod - Modification des droits en attribut lecture(w) / écriture(r) / execution(x) chgrp - Changer le groupe d’appartenance d’un fichier

Tableau de correspondance des attributs par valeur
#
Abréviation Droit Valeur
r Lecture 4
w Ecriture 2
x Execution 1

La bonne pratique impose que les droits du fichier soit dégressif. Enfin le droit de lecture et execution r-x est nécessaire pour qu’un utilisateur puisse entrer dans un répertoire.

La commande chmod sert à modifier explicitement les permissions d’un fichier ou d’un répertoire après sa création. Avec chmod, on peux définir exactement quelles permissions s’appliquent à un fichier ou un répertoire spécifique, sans tenir compte des valeurs par défaut d'umask.

Il est possible de spécifier au cas par cas les droits que l’on souhaite attribuer avec les valeurs comme suit: chmod (u|g|o|a<all>)(+/-)(r|w|x) mon_fichier

Allez un peu de math: Pour donner ce droit ci: rwxr-x--- on obtient (4+2+1)(4+1)0 soit chmod 750 <mon fichier>

  • Première valeur: rwx Droit du propriétaire du fichier - (u)
  • Deuxième valeur: r-x Droit appliqué au utilisateur du groupe propriétaire du fichier - (g)
  • Troisième valeur: --- Droit appliqué à tout les autres - (o)

Ajout de droit d’écriture à l’utilisateur : chmod u+w mon_fichier Retrait de droit d’execution à tout les autres utilisateurs : chmod o-x mon_fichier

Attribution de droit avec umask (User Mask)
#

La commande umask détermine les permissions par défaut des nouveaux fichiers et répertoires créés par l’utilisateur. Elle définit un masque qui retire certaines permissions de l’ensemble des permissions maximales possibles pour un fichier ou un répertoire.

  • Fonctionnement :
    • Chaque fois que tu crées un fichier ou un répertoire, le système applique la valeur de umask pour déterminer les permissions par défaut.
    • Les permissions maximales pour un nouveau fichier sont 666 (rw-rw-rw-), et pour un répertoire, elles sont 777 (rwxrwxrwx).
    • La valeur de umask est soustraite de ces permissions par défaut pour définir les permissions finales.

Exemple :
#

  • Si ton umask est 022, cela signifie :
    • Pour un fichier : 666 - 022 = 644 (rw-r–r–).
    • Pour un répertoire : 777 - 022 = 755 (rwxr-xr-x).

Tu utilises umask pour définir des permissions globales par défaut lors de la création de fichiers ou de répertoires, mais sans changer les permissions après coup.

Utilisation :
#

  • Afficher la valeur actuelle de umask : umask
  • Changer temporairement le masque (par exemple 027) : umask 027

Exemple comparatif :
#

  1. Si umask est 027 :

    • Un fichier créé avec touch aura les permissions 640 (rw-r—–).
    • Un répertoire créé avec mkdir aura les permissions 750 (rwxr-x—).
  2. Ensuite, tu peux utiliser chmod pour modifier ces permissions après la création :

    • chmod 644 mon_fichier : Change les permissions du fichier en rw-r–r–.
    • chmod 755 mon_repertoire : Change les permissions du répertoire en rwxr-xr-x.

En savoir plus: Gestion avancée des permissions
#

ACL - Access Control List et cie
redhat
RH124 - Cet article fait partie d'une série.
Partie 17: Cet article

Articles connexes

Accès à la ligne de commande
redhat
Analyse et enregistrement de fichiers journaux
redhat
Configuration et sécurisation de SSH
redhat ssh