2.2. Notions de base sur les fichiers

Les fichiers sont un autre domaine où GNU/Linux diffère totalement de Windows et de la plupart des systèmes d'exploitation. Nous ne verrons ici que les différences immédiatement visibles. Si vous le souhaitez, vous pouvez lire le chapitre Le système de fichiers de GNU/Linux: ext2fs (EXTended 2 FileSystem), qui approfondit ce sujet.

La première différence, et sans doute la plus importante, est justement liée à la présence de multi-utilisateurs. Nous aurions pu dire en transition que chaque utilisateur possède son propre répertoire (appelé répertoire personnel, ou home en anglais), mais cela n'explicite qu'une partie de ce qui se passe vraiment, à savoir que tout fichier, sur un système Unix, est la propriété exclusive d'un utilisateur et d'un groupe. Ainsi, chaque utilisateur a bien son répertoire personnel, mais il est de plus le propriétaire , au sens propre du terme, de ses fichiers.

De plus, des droits sont associés à chaque fichier, que seul l'utilisateur propriétaire peut modifier. Il existe trois catégories de droits selon le statut des utilisateurs : le propriétaire même du fichier, tous les utilisateurs membres du groupe auquel ce fichier est associé (on dit aussi le groupe propriétaire) mais qui n'est pas l'utilisateur propriétaire proprement dit ; et enfin tous les autres, c'est-à-dire tout utilisateur qui n'est ni le propriétaire du fichier ni membre du groupe propriétaire. Ces droits sont eux-mêmes répartis en trois catégories :

  1. Droit de lecture (r pour Read, lire) : autorise la lecture du contenu d'un fichier et le listage des fichiers contenus dans un répertoire, si et seulement si le droit d'exécution sur ce répertoire a été également accordé;

  2. Droit d'écriture (w pour Write, écrire) : autorise la modification du contenu d'un fichier et, sur un répertoire, la création et la suppression des fichiers, même si l'on n'est pas le propriétaire de ces fichiers;

  3. Droit d'exécution (x pour eXecute, exécuter) Dans le cas d'un fichier, l'exécution est octroyée ; par conséquent, seuls les fichiers exécutables obtiennent normalement l'octroi de ce droit. Pour un répertoire, cela autorise l'utilisateur à le traverser (c'est-à-dire à s'y rendre ou à se rendre dans l'un de ses répertoires fils).

Toutes les combinaisons de ces droits sont possibles : vous pouvez par exemple autoriser la lecture du fichier à vous seul et l'interdire à tous les autres, et interdire toute autre utilisation du fichier. Vous pouvez même faire l'inverse (même si ce n'est pas très logique à première vue :-)). En tant que propriétaire du fichier, vous pouvez même changer le groupe propriétaire (si et seulement si vous êtes aussi membre du nouveau groupe), voire vous déposséder entièrement des droits de l'utilisateur propriétaire !

Prenons l'exemple d'un fichier et d'un répertoire. L'affichage ci-dessous correspond à la frappe de la commande ls -l depuis une ligne de commande :

$ ls -l
total 1
-rw-r-----   1 reine    users           0 Jul  8 14:11 a_file
drwxr-xr--   2 darth    users        1024 Jul  8 14:11 a_directory/
$

Les différents champs de sortie de la commande ls -l sont les suivants (de gauche à droite) :

Observons maintenant en détails les droits associés à l'accès de chacun de ces fichiers : il faut tout d'abord enlever le premier caractère, qui désigne le type ; donc pour le fichier un_fichier, les droits accordés sont : rw-r-----. C'est-à-dire :

Pour le répertoire un_répertoire, les droits sont rwxr-xr--, et donc :

Attention! Il existe une exception à la règle, et de taille : le compte root peut changer les attributs (droits, utilisateur et groupe propriétaires) de tous les fichiers, même s'il n'en est pas le propriétaire. Ce qui veut dire qu'il peut aussi s'en donner la propriété. Il peut lire des fichiers sur lesquels il n'a aucun droit de lecture, traverser des répertoires qui ne lui sont normalement pas accessibles, et ainsi de suite. Et si un droit lui fait vraiment défaut, il peut tout simplement se l'octroyer.

Pour conclure ici, il est important de mentionner une autre différence, qui n'est pas négligeable : elle se situe au niveau des noms des fichiers. En effet, ils sont beaucoup moins limités que sous Windows :


Tux sur Étoile de MandrakeSoft Linux est une marque déposée de Linus Torvalds. Toutes les autres marques et copyrights sont la propriété de leurs auteurs respectifs.
Sauf mention contraire, tout le contenu de ces pages et toutes les images sont Copyright MandrakeSoft S.A. et MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/