Outils pour utilisateurs

Outils du site


linux:droits-fichiers

Les droits sur les fichiers

Sous linux, il est possible de gérer les droits sur les fichiers grâce à la commande chmod. Pour commencer, précisons qui sont les utilisateurs, et quels sont les droits dont on parle.


Les utilisateurs

Un fichier sous linux appartient à un utilisateur et à un groupe. Il existe trois types d'utilisateurs différents pour lesquels on va pouvoir gérer les droits :

  • u (pour user) : l'utilisateur auquel appartient le fichier/dossier
  • g (pour group) : le group auquel appartient le fichier/dossier
  • o (pour other) : les autres utilisateurs


Les droits

Plusieurs permissions peuvent être appliquées sur les fichiers/dossiers :

  • r (pour read) : droit de lire le fichier/dossier
  • w (pour write) : droit de modifier le fichier/dossier
  • x (pour execute) : droit d’exécuter le fichier
  • - (pour rien) : aucun droit sur le fichier/dossier


L'attribution des permissions

Pour assigner des permissions sur les fichiers/dossiers, il convient de combiner utilisateurs et droits.

Voici quelques exemples :
Pour donner les droits à l'utilisateur en lecture écriture sur un fichier texte.txt, il convient d'entrer la commande suivante :

chmod u+rw texte.txt

Pour enlever le droit en écriture au groupe et aux autres utilisateurs, il convient de faire :

chmod go-w texte.txt


L'attribution des permissions en octal

L'attribution des permissions peut également être faite en utilisant la notation octale. cela donne par exemple :

chmod 700 texte.txt

Cette commande assigne alors les droits (rwx) à l'utilisateur sur le fichier texte.txt.


Voici un tableau pour comprendre la notation octale :

user group other
Read = 4 x x x
Write = 2 x
Exec = 1 x x x
Octal 7 5 5

Ainsi, on attribuera une valeur 755 avec la commande chmod.

Voici un second tableau expliquant les différentes valeurs alphanumériques et octales

droits valeur alphanumerique valeur octale
aucun droit - - - 0
exécution seulement - - x 1
écriture seulement - w - 2
écriture et exécution - w x 3
lecture seulement r - - 4
lecture et exécution r - x 5
lecture et écriture r w - 6
tous les droits (lecture, écriture et exécution) r w x 7


Les droits spéciaux

Il existe 3 droits spéciaux : SUID, SGID et Sticky Bit. Ces permissions sont également attribuées avec la commande chmod. Elles peuvent aussi être définies en octal : on les place alors devant les permissions vues plus haut. On parle alors du groupe des droits spéciaux.


SUID : signifie 'Set User ID'. Si ce bit est positionné, la commande se lancera avec l'UID de l'utilisateur. Pour positionner ce bit, on utilise l'option s de la commande chmod.

chmod u+s /bin/cat

Mais on peut aussi positionner le SUID en octal, de la manière suivante : on met à 1 le premier bit du groupe des droits spéciaux

chmod 4755 /bin/cat

Le “4” correspond ici au SUID.


SGID : signifie 'Set Group ID'. Cela fonctionne de la même façon que le SUID, sauf que dans ce cas, il s'agit de l'ID du groupe. Pour positionner ce bit, on utilise l'option s de la commande chmod.

chmod g+s /bin/cat

Mais on peut aussi positionner le SGID en octal, en mettant à 1 le second bit du groupe des droits spéciaux :

chmod 2755 /bin/cat

Le “2” correspond ici au SGID.


Il est bien sur possible de positionner en même temps le bit SUID et le bit SGID :

chmod ug+s /bin/cat
chmod 6755 /bin/cat


Sticky Bit : si ce bit est positionné sur un dossier, seul le propriétaire d'un fichier contenu dans ce dossier pourra le supprimer ou le renommer. Tous les utilisateurs auront cependant accès au fichier en question. Nativement, sous linux, on trouve un exemple concret d'utilisation du Sticky Bit sur le dossier /tmp.

Pour positionner le Sticky Bit on utilise l'option t de la commande chmod, ou bien on positionne à 1 le 3ème bit du groupe de droits spéciaux.

chmod o+t /home/justegeek/communs
chmod 1666 /home/justegeek/communs


linux/droits-fichiers.txt · Dernière modification: 2018/04/09 05:01 (modification externe)