En cette période de fin d’année et de nouvelles résolutions, on a bien souvent plus de temps libre et l’esprit plus disponible. Si vous souhaitez découvrir la ligne de commande sous Linux ou améliorer vos connaissances actuelles si vous utilisez déjà une distribution Linux comme par exemple Ubuntu, Fedora ou Manjaro, voici une suggestion de programme que vous pouvez suivre.
Établissez une durée
Le programme que je propose ici comporte les 10 sections suivantes:
- Pratique des commandes de base
- Bash Scripting
- Manipulation de logs
- Gestion des utilisateurs et groupes
- Réseaux et connectivité
- Systèmes de fichiers
- Configuration et services système
- Pratique de la sécurité
- Outils avancés
- Projets pratiques
En fonction du temps libre que vous pensez avoir ces prochains jours ou prochaines semaines, vous pouvez établir que consacrerez X jours pour chaque section. Pour éviter la procrastination ou l’abandon, il est important que vous vous fixiez une date de fin avant de commencer (Le L de la méthode CLEAR). Si vous pensez passer 3 jours sur chaque sujet, vous aurez donc un programme total de 30 jours par exemple. N’oubliez pas que plus vous irez loin dans la liste, plus les sujets seront difficiles, prenez donc une durée qui vous laisse suffisament de temps pour bien assimiler ces nouvelles connaissances.
Vous pouvez opter pour une méthode pas à pas comme sur OpenClassrooms ou TryHackMe (en anglais) qui vous dira quelle action faire à quel moment en expliquant pourquoi. Cette méthode à l’avantage de fournir tout ce dont vous avez besoin pour apprendre, comprendre et pratiquer. L’inconvénient est que lorsque vous êtes confronté à une difficulté de la vie réelle, il n’y aura généralement personne pour vous dire pas à pas comment la résoudre. Il faudra donc rechercher en ligne sur Stack Exchange par exemple ou Reddit, comprendre les explications des autres personnes qui ont eu un souci plus ou moins similaire et les adapter à votre propre problème. De nos jours, on peut faciliter cette recherche avec l’aide de ChatGPT ou Perplexity, entre autres.
Repérez les sources d’information
Maintenant que la durée est établie, vous pouvez procéder comme suit:
- Pour les commandes, comme ls, cp, mv, etc… vous pouvez commencer par lire la manpage directement sur votre distribution Linux, en tapant
man ls
,man cp
,man mv
, etc… dans un terminal. Vous pouvez aussi lire ces mêmes manpages en ligne, par exemple sur manpages.org qui les propose dans plusieurs langues. - Concernant les scripts et logiciels à utliser comme nmap ou KVM, vous trouverez de nombreuses informations utiles sur leurs sites respectifs mais aussi sur Geeks For Geeks ou FreeCodeCamp, ou tout simplement Youtube qui permet de visualiser les sujets les plus complexes. Parfois une vidéo est plus efficace qu’une doc de 100 pages surtout quand on ne sait pas par où commencer.
- Que le système d’exploitation de votre ordinateur soit déjà Linux ou que vous utilisiez autre chose, il est préférable de faire cette pratique sur une machine virtuelle (sauf pour la dernière section qui concerne directement KVM). Ainsi, si vous cassez tout, il vous suffit de charger le dernier snapshot ou au pire de réinstaller votre distrib préférée sur une nouvelle VM.
1. Pratique des commandes de base
- Objectif : Renforcer la mémoire musculaire pour les commandes courantes.
- Exercices :
- Manipuler des fichiers :
ls
,cp
,mv
,rm
,find
,locate
. - Travailler avec les permissions :
chmod
,chown
,umask
. - Analyser le système :
df
,du
,top
,htop
,free
,uptime
. - Gérer les processus :
ps
,kill
,nice
,renice
,jobs
,bg
,fg
. - Répéter les tâches avec des outils comme
watch
oucron
.
- Manipuler des fichiers :
2. Bash Scripting
- Objectif : Automatiser les tâches répétitives.
- Exercices :
- Écrire un script pour sauvegarder un répertoire donné.
- Créer un script pour surveiller l’utilisation de l’espace disque et envoyer une alerte si un seuil est dépassé.
- Jouer avec les boucles (
for
,while
) et les conditions (if
,case
). - Utiliser des variables, des arguments et des redirections (
>
,>>
,2>
).
3. Manipulation de logs
- Objectif : Comprendre et analyser les journaux système.
- Exercices :
- Utiliser
journalctl
pour lire et filtrer les logs (par unité, priorité, période). - Écrire des commandes pour extraire des informations pertinentes dans
/var/log/
avecgrep
,awk
,sed
. - Configurer et utiliser un outil comme
logrotate
.
- Utiliser
4. Gestion des utilisateurs et groupes
- Objectif : Maitriser la gestion des comptes et des permissions.
- Exercices :
- Créer, modifier et supprimer des utilisateurs et des groupes avec
useradd
,usermod
,userdel
,groupadd
, etc. - Configurer des quotas de disque.
- Simuler des scénarios d’accès pour différents utilisateurs et tester les permissions.
- Créer, modifier et supprimer des utilisateurs et des groupes avec
5. Réseaux et connectivité
- Objectif : Développer une compréhension des concepts réseau et résoudre les problèmes de connectivité.
- Exercices :
- Configurer une interface réseau manuellement avec
ip
ouifconfig
. - Tester la connectivité avec
ping
,traceroute
,netstat
,ss
,nc
. - Analyser les connexions réseau actives.
- Simuler une configuration DNS locale avec
/etc/hosts
et tester avecdig
,nslookup
.
- Configurer une interface réseau manuellement avec
6. Systèmes de fichiers
- Objectif : Comprendre et manipuler les systèmes de fichiers.
- Exercices :
- Monter et démonter des systèmes de fichiers avec
mount
etumount
. - Créer et gérer des partitions avec
fdisk
ouparted
. - Configurer et tester des systèmes de fichiers comme
ext4
,xfs
, oubtrfs
. - Pratiquer avec des snapshots si disponibles.
- Monter et démonter des systèmes de fichiers avec
7. Configuration et services système
- Objectif : Apprendre à gérer et configurer des services.
- Exercices :
- Gérer les services avec
systemctl
(démarrer, arrêter, redémarrer, activer au démarrage). - Configurer un serveur web basique avec
nginx
ouApache
. - Configurer un serveur SSH sécurisé.
- Utiliser des outils de supervision comme
cron
,at
, ouanacron
.
- Gérer les services avec
8. Pratique de la sécurité
- Objectif : Identifier et corriger les vulnérabilités.
- Exercices :
- Scanner les ports ouverts avec
nmap
. - Mettre en place un pare-feu avec
iptables
ouufw
. - Analyser et restreindre les permissions des fichiers critiques.
- Configurer une politique SELinux ou AppArmor.
- Scanner les ports ouverts avec
9. Outils avancés
- Objectif : Découvrir et maîtriser des outils pour des tâches spécifiques.
- Exercices :
- Apprendre
tmux
ouscreen
pour gérer plusieurs sessions. - Manipuler des fichiers volumineux avec
awk
,sed
,cut
,sort
,uniq
. - Pratiquer avec des gestionnaires de paquets :
apt
,yum
,dnf
,pacman
.
- Apprendre
10. Projets pratiques
- Objectif : Appliquer les compétences dans des scénarios réalistes.
- Idées de projets :
- Configurer un serveur web complet avec un certificat SSL.
- Créer une machine virtuelle avec
KVM
ouVirtualBox
pour tester des configurations. - Installer et configurer un serveur de messagerie.
- Mettre en place un système de sauvegarde automatique.
Une fois que vous maîtrisez tout ceci, vous pourrez alors aller beaucoup plus loin et investiguer une machine sous Linux.
Bon courage et bonnes fêtes!