Comment tarer des fichiers, définir des autorisations de fichiers et trouver des fichiers sous Linux
Récemment, la Linux Foundation a lancé la certification LFCS (Linux Foundation Certified Sysadmin), un tout nouveau programme dont le but est de permettre aux individus d’effectuer des tâches d’administration système de base à intermédiaire sur les systèmes Linux.
Cela inclut la prise en charge des systèmes et des services déjà en cours d’exécution, ainsi que le dépannage et l’analyse de premier niveau, ainsi que la possibilité de décider quand faire remonter les problèmes aux équipes d’ingénierie.
La série s’intitulera Préparation pour le LFCS (Linux Foundation Certified Sysadmin) Parties 1 à 33 et couvrira les sujets suivants :
| Non. | Titre |
|---|---|
| Partie 1 | Comment utiliser la commande 'sed' pour manipuler des fichiers sous Linux |
| Partie 2 | Comment installer et utiliser vi/vim sous Linux |
| Partie 3 | Comment archiver des fichiers, définir des autorisations de fichiers et trouver des fichiers sous Linux |
| Partie 4 | Partitionnement des périphériques de stockage, formatage des systèmes de fichiers et configuration de la partition d’échange |
| Partie 5 | Monter/démonter des systèmes de fichiers locaux et réseau (samba et NFS) sous Linux |
| Partie 6 | Assemblage de partitions en tant que périphériques RAID – Création et gestion des sauvegardes système |
| Partie 7 | Gestion des processus et des services de démarrage du système (SysVinit, systemd et Upstart |
| Partie 8 | Comment gérer les utilisateurs et les groupes, les autorisations de fichiers et l’accès Sudo |
| Partie 9 | Gestion de paquets Linux avec Yum, RPM, Apt, Dpkg, Aptitude et Zypper |
| Partie 10 | Apprentissage des scripts shell de base et du dépannage des systèmes de fichiers |
| Partie 11 | Comment gérer et créer LVM à l’aide des commandes vgcreate, lvcreate et lvextend |
| Partie 12 | Comment explorer Linux avec les documentations et les outils d’aide installés |
| Partie 13 | Comment faire pour configurer et dépanner Grand Unified Bootloader (GRUB) |
| Partie 14 | Surveillez l’utilisation des ressources des processus Linux et définissez des limites de processus par utilisateur |
| Partie 15 | Comment définir ou modifier les paramètres d’exécution du noyau dans les systèmes Linux |
| Partie 16 | Mise en œuvre du contrôle d’accès obligatoire avec SELinux ou AppArmor sous Linux |
| Partie 17 | Définition de listes de contrôle d’accès (ACL) et de quotas de disque pour les utilisateurs et les groupes |
| Partie 18 | Installation des services réseau et configuration du démarrage automatique au démarrage |
| Partie 19 | Un guide ultime pour configurer un serveur FTP pour autoriser les connexions anonymes |
| Partie 20 | Configuration d’un serveur DNS de mise en cache récursive de base et configuration des zones pour le domaine |
| Partie 21 | Comment installer, sécuriser et optimiser les performances du serveur de base de données MariaDB |
| Partie 22 | Comment faire pour installer et configurer le serveur NFS pour le partage de système de fichiers |
| Partie 23 | Comment configurer Apache avec un hébergement virtuel basé sur le nom avec un certificat SSL |
| Partie 24 | Comment configurer un pare-feu iptables pour activer l’accès à distance aux services sous Linux |
| Partie 25 | Comment transformer un Linux en routeur pour gérer le trafic de manière statique et dynamique |
| Partie 26 | Comment configurer des systèmes de fichiers chiffrés et échanger à l’aide de l’outil Cryptsetup |
| Partie 27 | Comment surveiller l’utilisation du système, les pannes et dépanner les serveurs Linux |
| Partie 28 | Configuration d’un référentiel réseau pour l’installation ou la mise à jour de packages |
| Partie 29 | Audit des performances, de la sécurité et du dépannage du réseau |
| Partie 30 | Comment installer et gérer des machines virtuelles et des conteneurs |
| Partie 31 | Apprenez les bases de Git pour gérer efficacement vos projets |
| Partie 32 | Guide du débutant pour configurer les adresses IPv4 et IPv6 sous Linux |
| Partie 33 | Guide du débutant pour créer des liens et des ponts de réseau dans Ubuntu |
Cet article est la partie 3 d’une série de 33 tutoriels, ici dans cette partie, nous allons voir comment archiver/compresser des fichiers et des répertoires, définir des attributs de fichier et trouver des fichiers sur le système de fichiers, qui sont requis pour l’examen de certification LFCS.
Outils d’archivage et de compression pour Linux
Un outil d’archivage de fichiers regroupe un ensemble de fichiers en un seul fichier autonome que nous pouvons sauvegarder sur plusieurs types de supports, transférer sur un réseau ou envoyer par e-mail.
L’utilitaire d’archivage le plus fréquemment utilisé sous Linux est la commande tar. Lorsqu’un utilitaire d’archivage est utilisé avec un outil de compression, il permet de réduire la taille du disque nécessaire pour stocker les mêmes fichiers et informations.
Utilitaire tar Linux
tar regroupe un groupe de fichiers dans une seule archive (communément appelée fichier tar ou tarball). À l’origine, le nom signifiait Tape Archiver, mais nous devons noter que nous pouvons utiliser cet outil pour archiver des données sur n’importe quel type de support inscriptible (pas seulement sur des bandes).
Tar est normalement utilisé avec un outil de compression tel que gzip, bzip2 ou xz pour produire une archive de tar compressée.
La syntaxe de base de la commande tar est la suivante :
# tar [options] [pathname ...]
Où ... représente l’expression utilisée pour spécifier les fichiers sur lesquels il faut agir.
Commandes tar les plus couramment utilisées
| Option longue | abréviation | Description |
| –créer | c | Crée une archive tar |
| –concaténer | une | Ajoute des fichiers tar à une archive |
| –ajouter | r | Ajoute des fichiers à la fin d’une archive |
| –mettre à jour | u | Ajoute les fichiers plus récents que la copie dans l’archive |
| –diff ou –compare | d | Identifier les différences entre l’archive et le système de fichiers |
| –archive de fichiers | f | Utiliser le fichier d’archive ou l’appareil ARCHIVE |
| –liste | t | Répertorie le contenu d’une archive tar |
| –extract ou –get | x | Extrait des fichiers d’une archive |
Modificateurs de fonctionnement tar normalement utilisés
| Long | Abréviation | Description |
| –répertoire dir | C | Modifications apportées au répertoire dir avant d’effectuer les opérations |
| –same-permissions | p | Préserve les permissions d’origine |
| –verbose | v | Répertorie tous les fichiers lus ou extraits. Lorsque cet indicateur est utilisé avec –list, la taille des fichiers, la propriété et les horodatages sont affichés. |
| –verify | W | Vérifie l’archive après l’avoir écrite |
| –exclude fichier | — | Exclut les fichiers de l’archive |
| –exclude=motif | X | Exclut les fichiers, donnés sous forme de PATTERN |
| –gzip ou –gunzip | z | Traite une archive via Gzip |
| –bzip2 | j | Traite une archive via bzip2 |
| –xz | J | Traite une archive via xz |
Utilitaires Linux Gzip, Bzip2 et Xz
Gzip est l’outil de compression le plus ancien et offre le moins de compression, tandis que bzip2 offre une compression améliorée. De plus, xz est le plus récent mais offre (généralement) la meilleure compression.
Les avantages de la meilleure compression ont un prix : le temps nécessaire pour terminer l’opération et les ressources système utilisées pendant le processus.
Normalement, les fichiers tar compressés avec ces utilitaires ont respectivement les extensions .gz, .bz2 ou .xz. Dans les exemples suivants, nous utiliserons les fichiers suivants : fichier1, fichier2, fichier3, fichier4 et fichier5.
Compression de fichiers avec gzip, bzip2 et xz
Regroupez tous les fichiers dans le répertoire de travail actuel et compressez le paquet résultant avec gzip, bzip2 et xz (veuillez noter l’utilisation d’une expression régulière pour spécifier quels fichiers doivent être inclus dans le paquet - ceci afin d’empêcher l’outil d’archivage de regrouper les archives créées dans les étapes précédentes).
# tar czf myfiles.tar.gz file[0-9]
tar cjf myfiles.tar.bz2 file[0-9]
tar cJf myfile.tar.xz file[0-9]
Contenu de la liste et mise à jour/ajout des fichiers tar archive
Répertoriez le contenu d’une archive tar et affichez les mêmes informations qu’une longue liste de répertoires. Notez que les opérations de mise à jour ou d’ajout ne peuvent pas être appliquées directement aux fichiers compressés.
Décompresser les fichiers Tar
Si vous avez besoin de mettre à jour ou d’ajouter un fichier à une archive tar compressée, vous devez décompresser le fichier tar et le mettre à jour/l’ajouter, puis le compresser à nouveau.
# tar tvf [tarball]
Exécutez l’une des commandes suivantes :
# gzip -d myfiles.tar.gz [#1]
bzip2 -d myfiles.tar.bz2 [#2]
xz -d myfiles.tar.xz [#3]
Supprimer ou ajouter des fichiers à l’archive Tar
# tar --delete --file myfiles.tar file4 (deletes the file inside the tarball)
tar --update --file myfiles.tar file4 (adds the updated file)
et
# gzip myfiles.tar [ if you choose #1 above ]
bzip2 myfiles.tar [ if you choose #2 above ]
xz myfiles.tar [ if you choose #3 above ]
Finalement
# tar tvf [tarball] #again
et comparez la date et l’heure de modification de FILE4 avec les mêmes informations que celles indiquées précédemment.
Exclure des fichiers des sauvegardes
Supposons que vous souhaitiez effectuer une sauvegarde des répertoires personnels de l’utilisateur. Une bonne pratique d’administrateur système serait (peut également être spécifiée par les politiques de l’entreprise) d’exclure tous les fichiers vidéo et audio des sauvegardes.
Peut-être que votre première approche serait d’exclure de la sauvegarde tous les fichiers avec une extension .mp3 ou .mp4 (ou d’autres extensions). Et si vous avez un utilisateur intelligent qui peut changer l’extension en .txt ou .bkp, votre approche ne vous servira pas à grand-chose.
Afin de détecter un fichier audio ou vidéo, vous devez vérifier son type de fichier avec un fichier. Le script shell suivant fera l’affaire.
#!/bin/bash
Pass the directory to backup as first argument.
DIR=$1
Create the tarball and compress it. Exclude files with the MPEG string in its file type.
-If the file type contains the string mpeg, $? (the exit status of the most recently executed command) expands to 0, and the filename is redirected to the exclude option. Otherwise, it expands to 1.
-If $? equals 0, add the file to the list of files to be backed up.
tar X <(for i in $DIR/*; do file $i | grep -i mpeg; if [ $? -eq 0 ]; then echo $i; fi;done) -cjf backupfile.tar.bz2 $DIR/*
Restaurer la sauvegarde avec les autorisations de conservation Tar
Vous pouvez ensuite restaurer la sauvegarde dans le répertoire personnel de l’utilisateur d’origine (user_restore dans cet exemple), en préservant les autorisations, à l’aide de la commande suivante.
# tar xjf backupfile.tar.bz2 --directory user_restore --same-permissions
Utilisation de la commande rechercher pour rechercher des fichiers
La commande find est utilisée pour rechercher de manière récursive dans les arborescences de répertoires des fichiers ou des répertoires qui correspondent à certaines caractéristiques, et peut ensuite imprimer les fichiers ou répertoires correspondants ou effectuer d’autres opérations sur les correspondances.
Normalement, nous effectuerons une recherche par nom, propriétaire, groupe, type, autorisations, date et taille.
La syntaxe de base de la commande find est la suivante :
# find [directory_to_search] [expression]
Recherche récursive de fichiers en fonction de leur taille
Recherchez tous les fichiers (-f) dans le répertoire courant (.) et les 2 sous-répertoires ci-dessous (-maxdepth 3 inclut le répertoire de travail courant et 2 niveaux inférieurs) dont la taille (-size) est supérieure à 2 Mo.
# find . -maxdepth 3 -type f -size +2M
Recherche et suppression de fichiers qui correspondent à certains critères
Les fichiers disposant d’autorisations 777 sont parfois considérés comme une porte ouverte aux attaquants externes. Quoi qu’il en soit, il n’est pas sûr de laisser quiconque faire quoi que ce soit avec des fichiers. Nous allons adopter une approche plutôt agressive et les supprimer ! ('{}' + est utilisé pour « collecter » les résultats de la recherche).
# find /home/user -perm 777 -exec rm '{}' +
Recherche de fichiers en fonction des horodatages
Recherchez les fichiers de configuration dans /etc qui ont été consultés (-atime) ou modifiés (-mtime) plus (+180) ou moins (-180) qu’il y a 6 mois ou exactement 6 mois (180).
Modifiez la commande suivante selon l’exemple ci-dessous :
# find /etc -iname "*.conf" -mtime -180 -print
Définir les autorisations de fichier et les attributs de base
Les 10 premiers caractères de la sortie de ls -l sont les attributs du fichier. Le premier de ces caractères est utilisé pour indiquer le type de fichier :
-: un fichier normal-d: un répertoire-l: un lien symbolique-c: un dispositif de caractères (qui traite les données comme un flux d’octets, c’est-à-dire un terminal)-b: un périphérique bloc (qui gère les données en blocs, c’est-à-dire les périphériques de stockage)
Les neuf caractères suivants des attributs de fichier sont appelés mode fichier et représentent les autorisations de lecture (r), d’écriture (w) et d’exécution (x) du propriétaire du fichier, du propriétaire du groupe de fichiers et du reste des utilisateurs (communément appelés « le monde »).
Alors que l’autorisation de lecture sur un fichier permet de l’ouvrir et de le lire, la même autorisation sur un répertoire permet de répertorier son contenu si l’autorisation d’exécution est également définie. De plus, l’autorisation d’exécution dans un fichier lui permet d’être traité comme un programme et de s’exécuter, tandis que dans un répertoire, il permet de le cd’y être cd.
Les permissions de fichiers sont modifiées à l’aide de la commande chmod, dont la syntaxe de base est la suivante :
# chmod [new_mode] file
Où new_mode est soit un nombre octal, soit une expression qui spécifie les nouvelles autorisations.
Le nombre octal peut être converti à partir de son équivalent binaire, qui est calculé à partir des autorisations de fichier souhaitées pour le propriétaire, le groupe et le monde, comme suit :
La présence d’une certaine permission équivaut à une puissance de 2 (r=22, w=21, x=20), tandis que son absence équivaut à 0. Par exemple:
Pour définir les autorisations du fichier comme ci-dessus sous forme octale, tapez :
# chmod 744 myfile
Vous pouvez également définir le mode d’un fichier à l’aide d’une expression qui indique les droits du propriétaire avec la lettre u, les droits du propriétaire du groupe avec la lettre g et le reste avec o.
Tous ces « individus » peuvent être représentés en même temps par la lettre a. Les autorisations sont accordées (ou révoquées) à l’aide des signes + ou -, respectivement.
Supprimer l’autorisation d’exécution d’un script pour tous les utilisateurs
Comme nous l’avons expliqué précédemment, nous pouvons révoquer une certaine autorisation en la faisant précéder du signe moins et en indiquant si elle doit être révoquée pour le propriétaire, le propriétaire du groupe ou tous les utilisateurs. La ligne ci-dessous peut être interprétée comme suit : Changer de mode pour tous les utilisateurs (a), révoquer (-) l’autorisation d’exécution (x).
# chmod a-x backup.sh
Octroi d’autorisations de lecture, d’écriture et d’exécution pour un fichier au propriétaire et au propriétaire du groupe, ainsi que d’autorisations de lecture pour le monde entier.
Lorsque nous utilisons un numéro octal à 3 chiffres pour définir les autorisations d’un fichier, le premier chiffre indique les autorisations du propriétaire, le deuxième chiffre du propriétaire du groupe et le troisième chiffre de tous les autres :
- Propriétaire : (r=22 + w=21 + x=20=7)
- Propriétaire du groupe : (r=22 + w=21 + x=20=7)
- Monde : (r=22 + w=0 + x=0=4),
# chmod 774 myfile
Avec le temps et la pratique, vous serez en mesure de décider quelle méthode pour changer un mode de fichier vous convient le mieux dans chaque cas. Une longue liste de répertoires indique également le propriétaire du fichier et son propriétaire de groupe (qui servent de contrôle d’accès rudimentaire mais efficace aux fichiers d’un système) :
La propriété du fichier est modifiée avec la commande chown. Le propriétaire et le propriétaire du groupe peuvent être modifiés en même temps ou séparément. Sa syntaxe de base est la suivante :
# chown user:group file
Lorsqu’au moins un utilisateur ou un groupe doit être présent.
Exemples de commandes Chown
Changer le propriétaire d’un fichier pour un certain utilisateur.
# chown gacanepa sent
Changer le propriétaire et le groupe d’un fichier en une paire utilisateur/groupe spécifique.
# chown gacanepa:gacanepa TestFile
Changer uniquement le propriétaire du groupe d’un fichier en un certain groupe. Notez les deux-points avant le nom du groupe.
# chown :gacanepa email_body.txt
Conclusion
En tant qu’administrateur système, vous devez savoir comment créer et restaurer des sauvegardes, comment trouver des fichiers dans votre système et modifier leurs attributs, ainsi que quelques astuces qui peuvent vous faciliter la vie et vous éviteront de rencontrer de futurs problèmes.
J’espère que les conseils fournis dans le présent article vous aideront à atteindre cet objectif. N’hésitez pas à ajouter vos propres informations et idées dans la section des commentaires pour le bénéfice de la communauté. Merci d’avance !
L’eBook LFCS est disponible dès maintenant à l’achat. Commandez votre exemplaire dès aujourd’hui et commencez votre parcours pour devenir un administrateur système Linux certifié !
| Nom du produit | Prix | Acheter |
|---|---|---|
| Guide de préparation à la certification LFCS de la Linux Foundation | 19,99 $ | [Acheter maintenant] |
Enfin, pensez à acheter votre bon d’examen en utilisant les liens suivants pour nous faire gagner une petite commission, ce qui nous aidera à maintenir ce livre à jour.








