Recherche de site Web

Comment tarer des fichiers, définir des autorisations de fichiers et rechercher 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édiaires sur les systèmes Linux.

Cela inclut la prise en charge des systèmes et 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 signaler les problèmes aux équipes d'ingénierie.

La série s'intitulera Préparation à la LFCS (Linux Foundation Certified Sysadmin), parties 1 à 33 et couvrira les sujets suivants :

Part 1

Comment utiliser la commande « Sed » pour manipuler des fichiers sous Linux

Part 2

Comment installer et utiliser Vi/Vim sous Linux

Part 3

Comment archiver des fichiers, définir des autorisations de fichiers et rechercher des fichiers sous Linux

Part 4

Partitionnement des périphériques de stockage, formatage des systèmes de fichiers et configuration de la partition d'échange

Part 5

Monter/démonter les systèmes de fichiers locaux et réseau (Samba et NFS) sous Linux

Part 6

Assemblage de partitions en tant que périphériques RAID – Création et gestion des sauvegardes système

Part 7

Gestion des processus et services de démarrage du système (SysVinit, Systemd et Upstart)

Part 8

Comment gérer les utilisateurs et les groupes, les autorisations de fichiers et l'accès Sudo

Part 9

Gestion des packages Linux avec Yum, RPM, Apt, Dpkg, Aptitude et Zypper

Part 10

Apprentissage des scripts Shell de base et du dépannage du système de fichiers

Part 11

Comment gérer et créer LVM à l'aide des commandes vgcreate, lvcreate et lvextend

Part 12

Comment explorer Linux avec les documentations et outils d'aide installés

Part 13

Comment configurer et dépanner Grand Unified Bootloader (GRUB)

Part 14

Surveiller l'utilisation des ressources des processus Linux et définir les limites des processus par utilisateur

Part 15

Comment définir ou modifier les paramètres d'exécution du noyau dans les systèmes Linux

Part 16

Implémentation du contrôle d'accès obligatoire avec SELinux ou AppArmor sous Linux

Part 17

Comment définir des listes de contrôle d'accès (ACL) et des quotas de disque pour les utilisateurs et les groupes

Part 18

Installation des services réseau et configuration du démarrage automatique au démarrage

Part 19

Un guide ultime pour configurer le serveur FTP pour autoriser les connexions anonymes

Part 20

Configurer un serveur DNS de mise en cache récursive de base et configurer des zones pour le domaine

Part 21

Comment installer, sécuriser et optimiser les performances du serveur de base de données MariaDB

Part 22

Comment installer et configurer le serveur NFS pour le partage du système de fichiers

Part 23

Comment configurer Apache avec un hébergement virtuel basé sur le nom avec un certificat SSL

Part 24

Comment configurer un pare-feu Iptables pour activer l'accès à distance aux services sous Linux

Part 25

Comment transformer un Linux en routeur pour gérer le trafic de manière statique et dynamique

Part 26

Comment configurer des systèmes de fichiers cryptés et les échanger à l'aide de l'outil Cryptsetup

Part 27

Comment surveiller l'utilisation du système, les pannes et dépanner les serveurs Linux

Part 28

Comment configurer un référentiel réseau pour installer ou mettre à jour des packages

Part 29

Comment auditer les performances, la sécurité et le dépannage du réseau

Part 30

Comment installer et gérer des machines virtuelles et des conteneurs

Part 31

Apprenez les bases de Git pour gérer des projets efficacement

Part 32

Guide du débutant pour configurer les adresses IPv4 et IPv6 sous Linux

Part 33

Guide du débutant pour créer des liaisons et des ponts réseau dans Ubuntu

Cet article est la troisième partie d'une série de 33 didacticiels. Dans cette partie, nous expliquerons comment archiver/compresser des fichiers et des répertoires, définir les attributs des fichiers et rechercher les fichiers sur le système de fichiers requis pour le LFCS<. examen de certification.

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). Le nom signifiait à l'origine Tape Archiver, mais il faut savoir 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 tar compressée.

La syntaxe de base de la commande tar est la suivante :

tar [options] [pathname ...]

... représente l'expression utilisée pour spécifier sur quels fichiers il faut agir.

Commandes Tar les plus couramment utilisées

Long option Abbreviation Description
 –create  c  Creates a tar archive
 –concatenate  A  Appends tar files to an archive
 –append  r  Appends files to the end of an archive
 –update  u  Appends files newer than copy in archive
 –diff or –compare  d  Find differences between archive and file system
 –file archive  f  Use archive file or device ARCHIVE
 –list  t  Lists the contents of a tarball
 –extract or –get  x  Extracts files from an archive

Modificateurs d'opération tar normalement utilisés

Long option Abbreviation Description
 –directory dir  C  Changes to directory dir before performing operations
 –same-permissions  p  Preserves original permissions
 –verbose  v  Lists all files read or extracted. When this flag is used along with –list, the file sizes, ownership, and time stamps are displayed.
 –verify  W  Verifies the archive after writing it
 –exclude file  —  Excludes files from the archive
 –exclude=pattern  X  Exclude files, given as a PATTERN
 –gzip or –gunzip  z  Processes an archive through Gzip
 –bzip2  j  Processes an archive through bzip2
 –xz  J  Processes an archive through 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 ces fichiers : file1, file2, file3, file4 et fichier5.

Compresser des fichiers avec gzip, bzip2 et xz

Regroupez tous les fichiers du répertoire de travail actuel et compressez le bundle résultant avec gzip, bzip2 et xz (veuillez noter l'utilisation d'un fichier standard expression pour spécifier quels fichiers doivent être inclus dans le bundle – ceci afin d’empêcher l’outil d’archivage de regrouper les archives tar créées lors des é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 de 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 mettre à jour ou ajouter ne peuvent pas être appliquées directement aux fichiers compressés.

Décompresser les fichiers Tar

Si vous devez mettre à jour ou ajouter un fichier à une archive tar compressée, vous devez décompresser le fichier tar et le mettre à jour/y 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 ]

Enfin,

tar tvf [tarball] #again

et comparez la date et l'heure de modification du 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 accueil 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). Que se passe-t-il 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 le travail.

#!/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 préservation de 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, avec 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 soit imprimer les fichiers ou répertoires correspondants, soit effectuer d'autres opérations sur les correspondances.

Normalement, nous rechercherons 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 de fichiers de manière récursive en fonction de leur taille

Recherchez tous les fichiers (-f) dans le répertoire actuel (.) et les sous-répertoires 2 ci-dessous (-maxdegree 3 inclut le répertoire de travail actuel et 2 niveaux plus bas) dont la taille (-size) est supérieure à 2 Mo.

find . -maxdepth 3 -type f -size +2M

Recherche et suppression de fichiers correspondant à certains critères

Les fichiers dotés des autorisations 777 sont parfois considérés comme une porte ouverte aux attaquants externes. Quoi qu’il en soit, il n’est pas prudent de laisser quiconque faire quoi que ce soit avec des fichiers. Nous adopterons une approche plutôt agressive et les supprimerons ! ('{}' + permet de « collecter » les résultats de la recherche).

find /home/user -perm 777 -exec rm '{}' +

Recherche de fichiers basés sur 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 il y a 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 fichiers 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 périphérique 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 du fichier sont appelés le mode fichier et représentent la lecture (r), l'écriture (w) et l'exécution (x) les autorisations du propriétaire du fichier, du propriétaire du groupe du fichier 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 permet de le gérer comme un programme et de l'exécuter, tandis que dans un répertoire, elle permet d'y insérer le même disque.

Les permissions des fichiers sont modifiées avec la commande chmod, dont la syntaxe de base est la suivante :

chmod [new_mode] file

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 autorisation é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) avec les signes + ou -, respectivement.

Supprimer l'autorisation d'exécution sur 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 phrase 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

Accorder des autorisations de lecture, écrire et exécuter pour un fichier au propriétaire et au propriétaire du groupe, ainsi que des autorisations de lecture pour le monde entier.

Lorsque nous utilisons un nombre octal à 3 chiffres pour définir les autorisations pour un fichier, le premier chiffre indique les autorisations pour le propriétaire, le deuxième chiffre pour le propriétaire du groupe et le troisième chiffre pour 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 avec de la pratique, vous serez en mesure de décider quelle méthode pour modifier un mode de fichier vous convient le mieux dans chaque cas. Une longue liste de répertoires montre é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

Où au moins un utilisateur ou un groupe doit être présent.

Exemples de commandes Chown

Changer le propriétaire d'un fichier en un certain utilisateur.

chown gacanepa sent

Modification du propriétaire et du 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 rechercher 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 des problèmes futurs.

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 commentaires pour le bénéfice de la communauté. Merci d'avance!

Le livre électronique LFCS est disponible dès maintenant à l'achat. Commandez votre copie aujourd'hui et commencez votre parcours pour devenir un administrateur système Linux certifié !

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

Enfin, pensez à acheter votre bon d'examen en utilisant les liens suivants pour nous gagner une petite commission, qui nous aidera à maintenir ce livre à jour.