« Attributs étendus » : différence entre les versions

De Lea Linux
Aller à la navigation Aller à la recherche
m (Début)
 
(Suite)
Ligne 2 : Ligne 2 :


<cadre type="warning">Seuls ces systèmes de fichiers offrant ces attributs, il n'est pas prudent ─ en terme de sécurité ─ de s'appuyer lourdement sur leur présence si l'on est amené à transférer fréquemment des données d'un système de fichiers ''ext'' à un autre.</cadre>
<cadre type="warning">Seuls ces systèmes de fichiers offrant ces attributs, il n'est pas prudent ─ en terme de sécurité ─ de s'appuyer lourdement sur leur présence si l'on est amené à transférer fréquemment des données d'un système de fichiers ''ext'' à un autre.</cadre>
Les [[système de fichiers|systèmes de fichiers]] ''ext2'' et ''ext3'' (ainsi que ''reiserfs'' dans certaines conditions) offrent la possibilité de donner à des fichiers (fichiers réels ou répertoires) des '''attributs étendus''' qui s'ajoutent aux [[permissions|permissions classiques POSIX.1]], éventuellement complétées par les [[ACL|permissions étendues ACL]].
<cadre type="warning">Seuls ces systèmes de fichiers offrant ces attributs, il n'est pas prudent ─ en terme de sécurité ─ de s'appuyer lourdement sur leur présence si l'on est amené à transférer fréquemment des données d'un système de fichiers ''ext'' à un autre. D'autre part, il convient de tester ces possibilités : toutes les versions du noyau n'en tiennent pas compte de la même manière.</cadre>
==Mise en place==
Il n'y a rien à faire pour des partitions en ''ext2'' ou ''ext3'', qui respectent nativement les attributs étendus.
Chose assez peu connue, cependant, le système de fichiers ''reiserfs'' peut respecter les attributs étendus, à condition d'[[fstab|être monté]] avec l'option idoine <code>attrs</code>. Pour ce faire, les commandes suivantes sont appliquées :
* sur une partition non encore montée : <code>mount -t reiserfs -o attrs /dev/partition /point/de/montage</code> ;
* sur une partition déjà montée : <code>mount -o attrs /point/de/montage</code> (remontage à la volée).
Pour que la prise en compte soit effective à chaque montage automatique (le cas échéant), il faut ajouter l'option dans ''[[fstab|/etc/fstab]]''. Par exemple :
<code>
/dev/hda1      /              reiserfs    defaults,acl,attrs 0      1
</code>
Enfin, on peut recompiler son noyau avec l'option <code>CONFIG_REISERFS_FS_XATTR = y</code> pour que le mode <code>attr</code> soit automatiquement appliqué lors du montage d'une partition en ''reiserfs''.
<cadre type="warning">Noter que des fichiers d'une partition en ''reiserfs'' montée sans l'option <code>attrs</code> (ou la recompilation du noyau) peuvent recevoir des attributs étendus : ils seront bien enregistrés mais n'auront aucun effet. La commande de modification d'attributs, ''chattr'', ne renverra donc aucun message d'erreur sans pour autant que les attributs soient pris en compte. Ce détail peut avoir des répercussion pour la sécurité du système : on peut, à tort, croire protéger des fichiers.</cadre>
==Types d'attributs==
Selon la norme POSIX.1, tout fichier possède les permissions en lecture, écriture et exécution. On peut leur adjoindre des attributs supplémentaires, qui s'imposent à tous les utilisateurs hormis root quand ils modifient les actions qu'on peut avoir sur eux. Certains attributs sont actuellement expérimentaux (octobre 2005) et nécessitent de patcher le noyau pour qu'ils aient un effet réel.
;append only (a), « ajouter seulement » ─ '''réservé à root'''
:Protège le fichier contre la suppression de contenu : on ne peut que lui en ajouter.
;compressed (c), « compresser » ─ '''expérimental'''
:Le fichier est automatiquement compressé ─ si c'est utile, et avec un format de compression le plus efficace ─ quand il est stocké. La décompression lors de la lecture et la compression des données ajoutées au fichier par la suite se font à la volée, de manière transparente pour l'utilisateur (la commande <code>ls -l</code>, par exemple, montre la taille décompressée).
:Cet attribut appliqué à un répertoire ne le compresse pas mais fait se compresser automatiquement tout nouveau fichier qu'on y crée.
;no dump (d), « pas de sauvegarde »
:Un fichier ainsi marqué sera ignoré par la commande ''dump''.
;immutable (i), « immuable » ─ '''réservé à root'''
:Protège le fichier contre toute modification (suppression, modification, déplacement, changements de permissions), même par root, et empêche qu'on crée un lien vers lui. Seule la modification des attributs étendus est permise à son propriétaire et seul root peut enlever l'attribut « immuable » d'un fichier.
:Cet attribut est sans doute l'un des plus intéressants.
;data journalling (j), « journalisation des données » ─ '''réservé à root'''
:Cet attribut n'est utile qu'avec une partition en ''ext3'' montée avec les options de journalisation des données <code>data=ordered</code> (montage par défaut) ou <code>data=writeback</code> pour simuler une journalisation du type <code>data=journal</code>, où les données sont écrites dans le journal avant de l'être dans le fichier lui-même. Consulter <code>man mount 8</code> pour plus de détails sur les mécanismes de journalisation d'''ext3''.
:Sur une partition ''ext3'' en mode <code>data=journal</code>, cet attribut est ignoré, de même que sur les partitions en ''ext2'' et ''reiserfs'', le premier type n'étant pas journalisé, le second l'étant d'une manière incompatible.
;secure deletion (s), « effacement sécurisé »  ─ '''expérimental'''
:
;no tail-merging (t)
;undeletable (u) ─ '''experimental'''
;no atime updates (A)
;synchronous directory updates (D)
;synchronous updates (S)
;top of directory hierarchy (T).
==Commande==
lschattr, chattr
e2fsprogs
<!-- The  ‘c’,  ’s’,  and  ‘u’  attributes  are  not  honored by the ext2 and ext3 filesystems as implemented in the current mainline Linux kernels. These attributes may be implemented in future versions ext2 and ext3. The ‘j’ option is only useful if the filesystem is mounted as ext3. The ‘D’ option is only useful on Linux kernel 2.5.19 and later.
{{Copy|28.10.05|Vincent Ramos|FDL}}

Version du 27 octobre 2005 à 02:37

Les systèmes de fichiers ext2 et ext3 offrent la possibilité de donner à des fichiers (fichiers réels ou répertoires) des attributs étendus qui s'ajoutent aux permissions classiques POSIX.1, éventuellement complétées par les permissions étendues ACL.

<cadre type="warning">Seuls ces systèmes de fichiers offrant ces attributs, il n'est pas prudent ─ en terme de sécurité ─ de s'appuyer lourdement sur leur présence si l'on est amené à transférer fréquemment des données d'un système de fichiers ext à un autre.</cadre>

Les systèmes de fichiers ext2 et ext3 (ainsi que reiserfs dans certaines conditions) offrent la possibilité de donner à des fichiers (fichiers réels ou répertoires) des attributs étendus qui s'ajoutent aux permissions classiques POSIX.1, éventuellement complétées par les permissions étendues ACL.

<cadre type="warning">Seuls ces systèmes de fichiers offrant ces attributs, il n'est pas prudent ─ en terme de sécurité ─ de s'appuyer lourdement sur leur présence si l'on est amené à transférer fréquemment des données d'un système de fichiers ext à un autre. D'autre part, il convient de tester ces possibilités : toutes les versions du noyau n'en tiennent pas compte de la même manière.</cadre>

Mise en place

Il n'y a rien à faire pour des partitions en ext2 ou ext3, qui respectent nativement les attributs étendus.

Chose assez peu connue, cependant, le système de fichiers reiserfs peut respecter les attributs étendus, à condition d'être monté avec l'option idoine attrs. Pour ce faire, les commandes suivantes sont appliquées :

  • sur une partition non encore montée : mount -t reiserfs -o attrs /dev/partition /point/de/montage ;
  • sur une partition déjà montée : mount -o attrs /point/de/montage (remontage à la volée).

Pour que la prise en compte soit effective à chaque montage automatique (le cas échéant), il faut ajouter l'option dans /etc/fstab. Par exemple : /dev/hda1 / reiserfs defaults,acl,attrs 0 1

Enfin, on peut recompiler son noyau avec l'option CONFIG_REISERFS_FS_XATTR = y pour que le mode attr soit automatiquement appliqué lors du montage d'une partition en reiserfs.

<cadre type="warning">Noter que des fichiers d'une partition en reiserfs montée sans l'option attrs (ou la recompilation du noyau) peuvent recevoir des attributs étendus : ils seront bien enregistrés mais n'auront aucun effet. La commande de modification d'attributs, chattr, ne renverra donc aucun message d'erreur sans pour autant que les attributs soient pris en compte. Ce détail peut avoir des répercussion pour la sécurité du système : on peut, à tort, croire protéger des fichiers.</cadre>

Types d'attributs

Selon la norme POSIX.1, tout fichier possède les permissions en lecture, écriture et exécution. On peut leur adjoindre des attributs supplémentaires, qui s'imposent à tous les utilisateurs hormis root quand ils modifient les actions qu'on peut avoir sur eux. Certains attributs sont actuellement expérimentaux (octobre 2005) et nécessitent de patcher le noyau pour qu'ils aient un effet réel.

append only (a), « ajouter seulement » ─ réservé à root
Protège le fichier contre la suppression de contenu : on ne peut que lui en ajouter.
compressed (c), « compresser » ─ expérimental
Le fichier est automatiquement compressé ─ si c'est utile, et avec un format de compression le plus efficace ─ quand il est stocké. La décompression lors de la lecture et la compression des données ajoutées au fichier par la suite se font à la volée, de manière transparente pour l'utilisateur (la commande ls -l, par exemple, montre la taille décompressée).
Cet attribut appliqué à un répertoire ne le compresse pas mais fait se compresser automatiquement tout nouveau fichier qu'on y crée.
no dump (d), « pas de sauvegarde »
Un fichier ainsi marqué sera ignoré par la commande dump.
immutable (i), « immuable » ─ réservé à root
Protège le fichier contre toute modification (suppression, modification, déplacement, changements de permissions), même par root, et empêche qu'on crée un lien vers lui. Seule la modification des attributs étendus est permise à son propriétaire et seul root peut enlever l'attribut « immuable » d'un fichier.
Cet attribut est sans doute l'un des plus intéressants.
data journalling (j), « journalisation des données » ─ réservé à root
Cet attribut n'est utile qu'avec une partition en ext3 montée avec les options de journalisation des données data=ordered (montage par défaut) ou data=writeback pour simuler une journalisation du type data=journal, où les données sont écrites dans le journal avant de l'être dans le fichier lui-même. Consulter man mount 8 pour plus de détails sur les mécanismes de journalisation d'ext3.
Sur une partition ext3 en mode data=journal, cet attribut est ignoré, de même que sur les partitions en ext2 et reiserfs, le premier type n'étant pas journalisé, le second l'étant d'une manière incompatible.
secure deletion (s), « effacement sécurisé » ─ expérimental
no tail-merging (t)
undeletable (u) ─ experimental
no atime updates (A)
synchronous directory updates (D)
synchronous updates (S)
top of directory hierarchy (T).

Commande

lschattr, chattr e2fsprogs