Discussion:Les permissions sur les fichiers

De Lea Linux
Aller à la navigation Aller à la recherche

Commentaires de : VincentRamos

posté le 2005-04-18 12:23:44

Noter que les paramètres en octal passés à chmod ne doivent pas forcément être préfixés du zéro et qu'il n'y a pas de différence entre chmod 0755 et chmod 755. Cf. à cet égard le fil Usenet <news:42627333$0$1983$626a14ce@news.free.fr> et la documentation : « A numeric mode is from one to four octal digits (0-7), derived by adding up the bits with values 4, 2, and 1. Any omitted digits are assumed to be leading zeros. ».

Il n'y a donc pas non plus de conversion en décimal qui se produise si l'on omet ce préfixe zéro.

Vincent Ramos=Commentaires de : ClementHermann= posté le 2005-01-31 17:50:54

Merci de poser les questions sur le phorum de Léa.

__Spécificités pour les répertoires__

Pour les répertoires, la signification des permissions est légèrement modifiée :

On utilisera la convention suivante : ##**<nom du droit>**## (##**<représentation symbolique>**##) (##**<valeur numérique>**##) la valeur numérique (en octal) est utilisée par exemple par la commande chmod et la commande find (voir l'article auquel ce commentaire répond). Les différentes valeurs s'additionnent pour donner une représentation numérique de la permission pour chaque entité (propriétaire, groupe, autres).

- **exécution** (##**x**##) (##**1**##)---
Donne le droit d'accéder au répertoire
- **lecture** (##**r**##) (##**2**##)---
Donne le droit de lister le contenu d'un répertoire. (//NB: Si cette permission est absente, le répertoire n'est pas visible avec ls, à moins d'en être propriétaire.//)


- **écriture** (##**w**##) (##**4**##)---
Donne le droit de modifier le contenu du répertoire (même si les permissions individuelles sur les fichiers du répertoire ne le permettent pas)

Ces permissions s'ajoutent entre elles : on peut imaginer avoir le droit d'accéder (##**x**##) (##**1**##) à un répertoire sans pouvoir en lister(##**r**##) (##**2**##) le contenu, mais il n'est pas possible de donner le droit de lister un répertoire sans donner le droit d'y accéder. Attention cependant, si l'utilisateur a le droit d'écriture sur le répertoire parent, il pourra modifier les droits des sous-répertoires à sa guise.

D'autre part, les derniers bits POSIX (**sticky** et **setGID**) représentent des permissions spéciales, différentes elles aussi de leur homologue sur les fichiers : (//NB: le bit **setUID**, **4000** en représentation numérique, n'a pas d'effet sur un répertoire//).

- **sticky** (##**t**##) (##**1000**##)---
Même lorsqu'un répertoire est accessible en écriture, on ne peut modifier les fichiers enfants sur lesquels on ne possède pas de droit explicite. Le cas d'école est le répertoire temporaire commun du système, ##/tmp##.
- **setGID** (##**s**##) (##**2000**##)---
quelque soit le groupe principal d'un utilisateur, le groupe d'appartenance des fichiers enfants créés sera le groupe d'appartenance du répertoire. Sur une Debian, le cas d'école est ##/usr/local## et ses sous-répertoires qui possèdent comme groupe d'appartenance ##staff## et ont le bit **setGID** positionné : tout fichier créé sous l'un de ces répertoires aura comme groupe d'appartenance ##staff##.

Il existe aussi le bit sticky bit, "t" ou 1000 pour la valeur octale


Appliqué sur le répertoire, par exemple /tmp : celui-ci a pour but de ne permettre la suppression que des fichiers/répertoires dont on est propriétaire.


Appliqué sur un fichier binaire (attribution réservé à root) permet le maintien en mémoire après son exécution.