Table of Contents
Les attributs étendus, les contextes SELinux, et les ACL
Table of Contents
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