La gestion des fichiers sous Linux
La gestion des fichiers sous Linux contraste singulièrement avec l'environnement auquel les utilisateurs de Windows sont habitués. Loin des explorateurs graphiques, c'est le terminal et ses commandes dédiées qui règnent en maître. Un pivot qui exige de revoir ses réflexes, mais ouvre également la porte à une maîtrise sans précédent de son système.
Car derrière cette austérité apparente se dissimule un éventail de possibilités dont la plupart des administrateurs négligent encore la portée. Pourtant, les enjeux de sécurité obligent désormais à la plus grande vigilance. En effet, une mauvaise configuration des permissions sur les fichiers constitue l'une des menaces les plus prégnantes.
Les commandes de base pour la manipulation des fichiers
Maîtriser les opérations élémentaires sur les fichiers constitue le socle de toute gestion efficace sous Linux. Heureusement, une poignée de commandes fondamentales suffit pour couvrir l’essentiel des besoins :
cd permet de naviguer entre les répertoires. Couplée à des chemins absolus ou relatifs, elle offre un contrôle total sur le positionnement dans l’arborescence. Quelques options avancées méritent également d’être soulignées, comme cd - qui retourne au répertoire précédent.
ls dresse quant à elle la liste des contenus du répertoire courant. Taper ls -l révèle des informations détaillées sur les fichiers, comme les droits, les propriétaires ou les dates de dernière modification. Là encore, de nombreux paramètres permettent d’affiner l’affichage, à l’instar de ls -a pour voir les fichiers cachés.
mkdir : sa syntaxe ne souffre aucune ambiguïté. mkdir mon_repertoire crée instantanément le dossier mon_repertoire dans le répertoire en cours. Attention, mkdir ne créera pas les dossiers parents si le chemin complet n’existe pas déjà.
rmdir supprime un répertoire, à condition qu’il soit déjà vide. Pour effacer des fichiers, c’est la commande rm qu’il faudra utiliser. Très puissante, rm ne propose aucune confirmation avant de détruire définitivement les données désignées. La plus grande prudence est donc de mise dans son maniement.
touch permet de créer un fichier vide ou de mettre à jour la date de dernière modification d’un fichier existant. Associée à des wildcards comme *, elle délivre un formidable outil pour réaliser des opérations en masse sur les fichiers.
La structure arborescente sous Linux
Contrairement à Windows qui repose sur des lecteurs (C:, D:, etc.), Linux utilise une arborescence unique enracinée à la racine (root). Celle-ci se divise en un ensemble de répertoires standards, dont voici les plus importants :
/bin - Contient les exécutables binaires essentiels au fonctionnement du système, comme ls, cd, etc.
/etc - Regroupe les fichiers de configuration système et des applications. C’est le cœur du paramétrage d’une distribution Linux.
/home - Répertoire personnel des utilisateurs, où sont stockés leurs données (documents, images, téléchargements, etc.).
/usr - Une hiérarchie complète composée de sous-répertoires comme /usr/bin ou /usr/share abritant de nombreux programmes.
/tmp - Emplacement pour stocker les fichiers temporaires, vidé à chaque redémarrage.
/var - Zone réservée pour diverses données amenées à croître dans le temps (logs, caches, spools, etc.).
Au-delà de cette division logique, l’administrateur doit maîtriser deux types de chemins pour accéder aux fichiers :
Les chemins absolus débutent systématiquement à la racine /. Ils pointent de façon non ambiguë vers un fichier ou un répertoire donné, comme dans /home/utilisateur/document.txt. Attention cependant : un chemin absolu n’est valable que sur la machine locale !
Les chemins relatifs indiquent un emplacement relatif au répertoire courant. Ils sont donc plus flexibles lors des copies/déplacements entre machines, du moment que la structure des répertoires reste similaire. Un chemin relatif classique serait alors ../../documents/rapport.pdf pour remonter de deux niveaux de dossiers avant d’atteindre le dossier documents.
Les permissions sur les fichiers
Sous Linux, les permissions sur les fichiers constituent une barrière essentielle contre les accès non autorisés. Pour chaque fichier ou dossier sont définis trois ensembles de droits :
Le propriétaire (u) : l'utilisateur propriétaire du fichier.
Le groupe (g) : un groupe d'utilisateurs auquel appartient le propriétaire.
Les autres (o) : tous les utilisateurs n'appartenant pas aux deux catégories précédentes.
Chacun de ces trois acteurs dispose de trois types de permissions :
Lecture (r) : possibilité de consulter le contenu du fichier.
Écriture (w) : possibilité de modifier le contenu du fichier.
Exécution (x) : possibilité d'exécuter le fichier dans le cas d'un programme ou d'accéder au contenu du répertoire s'il s'agit d'un dossier.
Ces permissions peuvent être consultées grâce à la commande ls -l qui les affiche sous la forme symbolique suivante :
Ici, le propriétaire root possède les droits de lecture, d'écriture et d'exécution (rwx). Les membres du groupe admin disposent des droits de lecture et d'exécution (r-x) tandis que tous les autres utilisateurs n'ont aucun droit (--).
Modifier ces permissions s'effectue aisément avec la commande chmod. Par exemple, pour accorder le droit d'exécution à tous les utilisateurs sur mon_script.sh, il suffit de taper :
La commande chmod s'avère donc très utile pour rectifier rapidement des problèmes de permissions sur des fichiers. Les options sont nombreuses pour accorder ou supprimer des droits de façon extrêmement précise.
La recherche de fichiers
Trouver un fichier spécifique peut vite se révéler laborieux sur des systèmes comptant des dizaines de milliers de fichiers. Heureusement, Linux dispose de puissants outils dédiés à cette tâche : les commandes locate et find.
Utilisable simplement en ligne de commande, locate permet de rechercher instantanément un fichier par son nom à travers l'ensemble du système de fichiers. Sa rapidité tient au fait qu'il s'appuie sur une base de données mise à jour chaque jour. L'inconvénient est qu'il ne détecte pas les fichiers créés depuis la dernière mise à jour.
Cette requête va sonder la base de données locate pour trouver tout fichier correspondant au nom exact « rapport-mars-2023.doc ». Le résultat s'affichera instantanément si le fichier est indexé.
La commande find ne souffre pas de cette limitation. Bien que plus lente, elle scanne réellement les disques pour y dénicher le fichier demandé. Extrêmement versatiles, ses options permettent de filtrer finement les résultats :
Cette requête va parcourir /home/util à la recherche des fichiers dont le nom commence par « document » et finit par « .txt ». Par ailleurs, les expressions régulières offrent un moyen puissant d'affiner les critères, en complément du tri par taille, date de dernière modification, etc.
En définitive, locate et find forment un tandem idéal de recherche de fichiers sous Linux. Le premier pour sa vitesse, le second lorsque le besoin de résultats en temps réel prévaut. En les adoptant, plus aucun fichier ne saurait échapper à l'administrateur, aussi profondément enfoui soit-il !
Ainsi, la gestion des fichiers en ligne de commande constitue un pilier de l'administration Linux. Les commandes de manipulation de base, la structure arborescente, les permissions et les outils de recherche n'auront plus de secret pour vous !
Pour en savoir plus sur Linux :
Inscription à la newsletter
Si vous êtes passioné.e d'IT, vous allez adorer notre newsletter
Commentaire
Connectez-vous ou créez votre compte pour réagir à l’article.