Discussion:Les permissions sur les fichiers

From Lea Linux
Jump to navigation Jump to search

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= Merci de poser les questions sur le phorum de Léa.

Commentaires de : ClementHermann

posté le 2005-01-31 17:50:54

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
- l'ecture' (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.

Commentaires de : Pierre Renié

Dans la partie SUID et GUID j'ai supprimé l'exemple proposant d'activer le bit suid root sur xmms pour 2 raisons:

  • C'est très dangereux car son exécution permettrait d'enregistrer des fichiers sur des fichiers système
  • J'ai essayé de le faire, et GTK refuse de se lancer. J'avais le message suivant:Gtk-WARNING **: This process is currently running setuid or setgid. This is not a supported use of GTK+. You must create a helper program instead. For further details, see: http://www.gtk.org/setuid.html Refusing to initialize GTK+.

    Licence

    La licence de cet article a été passée en CC-BY-SA en accord avec son auteur (cf courriel du 18 septembre 2013) Lea (discussion) 23 septembre 2013 à 13:23 (CEST)