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 : #
-
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—).
- Un fichier créé avec
-
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.