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 deux commandes GNU / tar et rsync peuvent archiver les attributs étendus suivants lors de la sauvegarde:
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
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 :
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 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…
La syntaxe est:
tar --selinux --acls --xattrs -cvf file.tar /var/www
Où,
Pour extraire des archives:
tar -xvf file.tar
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ù,
La syntaxe est:
rsync -av -A -X /source/chemin /dest/chemin rsync -az -A -X /source/chemin utilisateur1@serveur2:/dest/chemin
Où,
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/
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/
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
Pour voir le contexte SElinux taper la commande suivante:
ls -lZ ls -lZ /chemin/vers/fichier
OU
ls -Z
Les deux commandes permettant de visualiser les droits ACL et de les modifier sont, sous UNIX :