User Tools

Site Tools


securite:selinux-tar-rsync

Les attributs étendus, les contextes SELinux, et les ACL

Introduction

Cet article décrit la manière de conserver les ACL, les attributs étendus et les contextes SELinux sous le serveur CentOS/RHEL/Fedora Linux lors d'une sauvegarde avec tar et rsync.

Les attributs

Les deux commandes GNU / tar et rsync peuvent archiver les attributs étendus suivants lors de la sauvegarde:

  • Les attributs étendus : xattrs
  • Contexte Selinux
  • Acls

Les attributs étendus : xattrs

Au contraire des attributs réguliers, les attributs étendus ne sont pas interprétés par le système de fichiers, mais sont stockés et gérés séparément. Tout attribut étendu est identifié par une paire (nom:valeur) qui permet la manipulation des informations stockées. Les attributs étendus sont généralement limités en taille, mais ces limitations sont dépendantes du système de fichier utilisé et de sa configuration.

Cela nécessite donc des systèmes de fichiers compatibles avec les attributs étendus. Sous Linux, les systèmes de fichiers ext2, ext3, ext4, JFS, ReiserFS, XFS, Btrfs et OCFS2 1.6 incluent le support pour les attributs étendus

Contexte Selinux

SELinux utilise les attributs étendus (Extended Attributes – EA) des fichiers pour les étiquettes. En plus de la notion de « droits de lecture, écriture, exécution » pour un usager donné, SELinux définit pour chaque fichier ou processus :

  • Un usager virtuel (ou collection de rôles) ;
  • Un rôle ;
  • Un contexte de sécurité.

Les commandes « système » sont étendues pour pouvoir manipuler ces objets et définir des politiques (règles d'accès), et des statuts (niveau de confidentialité).

Les ACLs

Les ACL (Access Control Lists = Listes de Contrôle d'Accès) permettent de gérer les permissions caractérisant les autorisations d'accès à un fichier de façon beaucoup plus fine qu'avec les mécanismes Unix traditionnels.

Les listes de contrôle d'accès sont des métadonnées stockées dans les inodes de fichier, tout comme les permissions traditionnelles, les dates, etc…

Archiver et conserver les attributs étendus, les contextes SELinux, et les ACL

syntaxe de commande tar

Sauvegarde

La syntaxe est:

tar --selinux --acls --xattrs -cvf file.tar /var/www

Où,

  • –selinux - Sauvegarde le contexte SELinux dans l'archive appelée file.tar.
  • –acls - ASave les ACL à l'archive appelée file.tar.
  • –xattrs - Sauvegarde l'utilisateur / root xattrs dans l'archive appelée file.tar Merci de bien archiver tous les attributs étendus, y compris SELinux et les ACL.
  • -c - Crée une nouvelle archive appelée file.tar.
  • -v - Sortie verbeuse.
  • -f file.tar - Nom du fichier archive.
  • /var/www - Crée une archive appelée fichier.tar du répertoire / var / www

Extraction

Extraction AVEC les attributs

Pour extraire des archives:

tar -xvf file.tar

Extraction SANS les attributs

On peut ignorer les attributs en utilisant la syntaxe suivante pour la rétrocompatibilité avec les anciens systèmes basés sur Linux:

tar --no-acls --no-selinux --no-xattrs -xvf file.tar

Où,

  • –no-acls - N'extrayez pas les ACL de l'archive.
  • –no-selinux - Ne pas extraire le contexte SELinux de l'archive.
  • –no-xattrs - Ne pas extraire l'utilisateur / root xattrs de l'archive

Syntaxe de la commande rsync

Usage

La syntaxe est:

rsync -av -A -X /source/chemin /dest/chemin
rsync -az -A -X /source/chemin utilisateur1@serveur2:/dest/chemin

Où,

  • -A: Préserve l'ACL
  • -X: Conserve les attributs étendus / SELinux
  • -a: Mode d'archivage
  • -z: Compresser les données du fichier pendant le transfert

Exemples

Pour synchroniser /var/www sur node2, entrer:

rsync -aAX /var/www root@node2:/var/www/

OU

rsync -e ssh -aAX /var/www root@node2:/var/www/

Options supplémentaires

Pour sauvegarder les liens durs (-H), voir la progression (-P) et la sortie verbose (-v):

rsync -e ssh -aAXHPv /var/www root@node2:/var/www/

Visualiser les attributs étendus, les contextes SELinux et les ACL

Attributs étendus

Pour voir les attributs étendus des objets du système de fichiers, taper la commande getfattr:

getfattr -d -m --R /chemin/vers/dir
getfattr -d -m - /chemin/vers/fichier
getfattr -d -m security.selinux -R /var/www

Pour visualiser les attributs de fichier sur système de fichiers ext2:

lsattr /chemin/vers/fichier

Contexte SElinux

Pour voir le contexte SElinux taper la commande suivante:

ls -lZ
ls -lZ /chemin/vers/fichier

OU

ls -Z

ACL

Les deux commandes permettant de visualiser les droits ACL et de les modifier sont, sous UNIX :

  • getfacl : pour visualiser
  • setfacl : pour modifier
securite/selinux-tar-rsync.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1