Correction des exercices
Exercice du chapitre Architecture du système GNU/Linux
L’objectif est d’identifier les différents composants du système.
1. Avant de commencer, ouvrez une console sur l’une des trois distributions que nous évoquons dans cet ouvrage. Puis, identifiez-vous en tant que root.
Pour la distribution Debian :
Debian GNU/Linux 9 system1 tty1
system1 login : bob
password :
bob@system1:~$ sudo -i
[sudo] password for bob:
root@system1:~#
Vous pouvez effectuer cette même manipulation avec CentOS si vous avez le compte utilisateur bob défini comme sudoer. Pour cela, il faut qu’il soit membre du groupe wheel. Sinon, vous avez d’autres possibilités :
-
Ouvrir une session en tant que root puisque ce dernier n’est pas désactivé.
-
Ouvrir une session avec le compte utilisateur régulier bob et utiliser la commande su :
CentOS Linux 7 (core)
Kernel 3.10.0-229.20.1.el7.x86_64 on an X86_64
system2 login : bob
Password :
[bob@ system2 ~]$ su -
Mot de passe :
[root@ system2 ~]#
2. Identifiez, à l’aide de plusieurs commandes, les informations suivantes :
-
L’architecture matérielle avec uname :
uname -m
-
La version du noyau :
uname -r
-
La liste des modules de noyau qui sont chargés :
lsmod...
Exercice du chapitre Noyau Linux
Vous allez utiliser la distribution de votre choix.
1. Ouvrez une session en tant que root et ouvrez une invite de commande :
Vous vous connectez directement avec le compte root ou bien vous vous connectez avec un compte qui est sudoer :
sudo -i
2. Téléchargez le dernier noyau Linux dans le répertoire /root :
wget https://cdn.kernel.org/pub/linux/kernel/vN.x/linux-N.N.N.tar.xz
Adaptez la commande ci-dessus en remplaçant les trois « N » par les numéros de la dernière version du noyau Linux proposée sur le site web. Exemple :
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.13.tar.xz
3. Décompressez l’archive et entrez dans le répertoire Linux :
tar xJvf linux-N.N.N.tar.xz
cd linux-N.N.N.tar.xz
4. Assurez-vous de disposer de tous les prérequis logiciels :
-
Pour les distributions Debian et Ubuntu :
apt-get install build-essential module-init-tools fakeroot
-
Pour la distribution CentOS :
yum groupinstall "Development Tools"
5. Reprenez le fichier de configuration du noyau actif :
make defconfig
6. Compilez le noyau (méthode classique) puis installez-le :
make && make modules_install install
7. Redémarrez votre système avec le nouveau noyau :
shutdown -r now
Dans le menu de GRUB, assurez-vous que le système démarre bien avec le nouveau noyau. Ouvrez une session...
Exercice du chapitre Modules
1. Créez un répertoire LKM dans votre répertoire de base et entrez dans celui-ci.
mkdir ./lkm
cd lkm
2. Écrivez le code suivant :
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("John Doe");
MODULE_DESCRIPTION("Module hello world");
MODULE_VERSION("Version 1.00");
int init_module(void)
{
printk(KERN_INFO "[Hello world] - La fonction init_module() est
appelée.\n");
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "[Hello world] - La fonction cleanup_module()
est appelée.\n");
}
3. Écrivez le fichier Makefile :
obj-m += hello.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD)
modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
install:
cp ./hello.ko /lib/modules/$(shell uname -r)
/kernel/drivers/misc
4. Compilez puis installez :
make && make install
5. Chargez le module automatiquement au démarrage...
Exercice du chapitre Pseudo-systèmes de fichiers
L’objectif est de modifier de façon permanente la gestion du swap.
1. Ouvrez une session en tant que super-utilisateur :
-
Pour la distribution Debian :
Debian GNU/Linux 9 system1 tty1 system1 login : root password : root@system1:~#
-
Pour la distribution CentOS :
CentOS Linux 7 (core) Kernel 3.10.0-229.20.1.el7.x86_64 on an X86_64 srv02 login : root system2 login : root Password : [root@srv02 ~]# [root@ system2 ~]#
2. Quel est le paramètre du noyau Linux qui contrôle la quantité de données qui doit être conservée en mémoire vive ou mise dans le swap ? Affichez sa valeur.
Le paramètre du noyau est /proc/sys/vm/swappiness. Sa valeur est :
# cat /proc/sys/vm/swappiness
60
3. Modifiez la valeur de ce paramètre à 10. Veillez à ce que cette modification soit permanente. Redémarrez le système et vérifiez.
Le changement permanent s’effectue dans le dossier /etc/sysctl.d/. Créez dans ce dernier un fichier dont l’extension doit être « .conf » :
vi /etc/sysctl.d/mes_parametres.conf
Le nom de ce fichier est quelconque. Ajoutez dans celui-ci la ligne de configuration suivante :
vm.swappiness = 10
Après redémarrage...
Exercice du chapitre Dépannage matériel
1. Ouvrez une session dans une console en tant qu’utilisateur root.
-
Pour les distributions Debian et Ubuntu :
Debian GNU/Linux 9 system1 tty1 system1 login : root password : root@srv01:~# root@system1:~#
-
Pour la distribution CentOS :
CentOS Linux 7 (core) Kernel 3.10.0-229.20.1.el7.x86_64 on an X86_64 system2 login : root Password : [root@system2 ~]#
2. Vérifiez la présence de la commande lshw. Si elle n’est pas présente, installez-la.
-
La commande est installée de base pour la distribution Debian.
-
Pour CentOS, installez le paquet :
yum install -y lshw
3. Identifiez le nom de votre interface de communication filaire avec lshw et le nom du pilote de périphérique :
# lshw -c network
L’interface Ethernet 82540EM Gigabit Ethernet Controller a pour nom logique enp0s3. Le pilote de périphérique (driver), qui est du reste un module de noyau, est e1000.
4. Affichez les entrées du journal concernant le pilote.
Le journal dans lequel résident des informations concernant les périphériques est /var/log/dmesg :
# dmesg |grep e1000
ou bien :
journalctl -k |grep e1000
5. Vérifiez si le pilote est chargé :
lsmod |grep e1000
6. Déchargez le module de noyau qui pilote cette interface.
-
Avec modprobe :
modprobe...
Exercice du chapitre Maintenance des disques
1. Partitionnement pendant l’installation
1. Créez une nouvelle machine virtuelle :
Composants |
Valeurs |
Général |
Linux Debian 9 (64 bits) 1024 Mio de RAM |
Système |
Ordre d’amorçage : disque dur optique |
Stockage |
Contrôleur CD/DVD Image ISO DVD1 de Debian Cinq disques durs (dynamiquement alloués) : Disque 1 : 8 Gio Disque 2 : 10 Gio Disque 3 : 5 Gio Disque 4 : 10 Gio Disque 5 : 9 Gio |
Réseau |
Carte 1 activée en NAT |
2. Installez Debian 9 avec la configuration suivante :
Composants |
Valeurs |
Compte root |
Désactivé |
Compte bob |
Sudoer Mot de passe : formation |
Partition primaire |
/boot : 1 Gio (ext2) |
Groupe de volumes |
Nom : sysVG Liste des PV : /dev/sda /dev/sdb |
Volumes logiques |
Swap : swapLV de 1204 Mio / : rootLV de 8 Gio (ext4) /usr : usrLV de 5 Gio (ext4) /var : varLV de 4 Gio (ext4) |
Interface graphique |
Non |
Packages |
Par défaut |
Réseau |
Client DHCP |
3. Ouvrez une session en tant que bob et affichez les PV, le VG et les LV.
Une fois la machine virtuelle créée dans VirtualBox, vous la démarrez.
L’ouvrage n’intègre pas toutes les captures d’écran de l’installation mais seulement les étapes clés. Une connexion Internet est conseillée.
Choisissez dans le menu Advanced options :
Puis Graphical expert install :
Le premier menu d’installation apparaît :
Choisissez la langue française, le pays France, les paramètres régionaux fr_FR.UTF-8 et le clavier français. Vous pouvez choisir une autre langue et un autre pays si besoin.
Nous n’avons pas besoin de composants supplémentaires à installer.
La configuration réseau s’effectue automatiquement (DHCP).
Le nom de la machine est debsrv et le suffixe DNS staff.local. Là aussi, vous pouvez mettre des valeurs autres.
Les mots de passe doivent être dans le fichier /etc/shadow. Nous refusons la connexion de root. Vous allez donc créer un utilisateur qui sera sudoer. Le nom de connexion est bob. Son mot de passe est : formation.
Acceptez la configuration de l’horloge. Acceptez le serveur de temps proposé Europe/Paris. Vous pouvez adapter si vous êtes hors...
Exercice du chapitre Séquence d’amorçage
Vous allez utiliser la machine virtuelle CentOS 7.
1. Modifiez à 1 minute le délai du menu GRUB de façon permanente.
Modifiez le fichier /etc/default/grub et mettez le délai à 60 secondes :
GRUB_TIMEOUT=60
Regénérez la configuration de GRUB :
grub2-mkconfig -o /boot/grub2/grub.cfg
2. Redémarrez le système pour vérifier.
Exercice du chapitre Maintenance des applications
Pour les deux exercices, vous allez utiliser la machine virtuelle Debian. Ouvrez une session en ligne de commande et soyez root.
-
Pour la distribution Debian :
Debian GNU/Linux 9 system1 tty1
system1 login : root
password :
root@system1:~#
-
Pour la distribution CentOS :
CentOS Linux 7 (core)
Kernel 3.10.0-229.20.1.el7.x86_64 on an X86_64
system2 login : root
Password :
[root@system2 ~]#
1. Tuer un programme zombie
1. Écrivez le code suivant dans un éditeur de texte. Nommez le fichier zombie.c :
// zombie.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main(void)
{
pid_t child_pid;
child_pid = fork ();
if (child_pid > 0) {
printf("Processus parent : Attendre 2 minutes.\n");
sleep(120);
}
else {
printf("Processus fils : Sortie immédiate.\n");
exit(0);
}
return(0);
}
2. Compilez avec gcc :
gcc zombie.c -o zombie
3. Exécutez le programme zombie en arrière-plan :
./zombie &
4. Vous avez deux minutes. Identifiez...
Exercice du chapitre Maintenance de la configuration réseau
1. Collecter la configuration d’une carte réseau
Deux machines virtuelles sont nécessaires :
-
La première est une machine Debian 9.
-
La seconde est une machine CentOS 7.
1. Utilisez la première. Ouvrez une session en tant que root.
Debian GNU/Linux 9 system1 tty1
system1 login : root
root@system1:~#
2. Identifiez les informations suivantes :
Élément |
Valeur |
Commande utilisée |
Nom de la carte |
enp0s3 |
lshw -c network |
Nom du constructeur et modèle |
82540EM Gigabit Ethernet Controller Intel Corporation |
lshw -c network |
Driver de la carte |
e1000 |
lshw -c network |
Duplex |
full |
lshw -c network |
Vitesse de la carte |
1000 |
lshw -c network |
Adresse MAC |
08:00:27:3a:17:d8* |
Ip addr |
Adresse statique ou dynamique |
dynamique |
cat /etc/network/interfaces |
Adresse IP et masque |
10.0.2.15/24 |
Ip addr |
Passerelle par défaut |
10.0.2.2 |
Netstat -rn |
Nom de la machine |
debsrv |
hostname |
* La valeur de l’adresse MAC peut être différente.
D’autres commandes peuvent également donner de bonnes réponses.
2. Renommer l’interface réseau en eth0
1. Utilisez la deuxième machine virtuelle.
Ouverture de session :
CentOS Linux 7 (core)
Kernel 3.10.0-229.20.1.el7.x86_64 on an X86_64
system2 login : root
Password :
[root@system2 ~]#
2. Identifiez...
Exercice du chapitre Analyse des performances
Vous allez utiliser la machine virtuelle Debian.
Ouvrez une session en ligne de commande et soyez super-utilisateur.
Pour la distribution Debian :
Debian GNU/Linux 9 system1 tty1
system1 login : root
password :
root@system1:~#
1. Création d’un fichier swap
1. Regardez l’état du swap actuel et notez les valeurs.
root@system1:~# free -mt
total used free shared buffers cached
Mem: 490 124 365 4 12 50
-/+ buffers/cache: 61 428
Swap: 975 0 975
Total: 1466 124 1341
2. Créez un fichier swap de 100 Mio qui se nomme mem.swp.
root@system1:~# dd if=/dev/zero of=mem.swp bs=1024 count=100000
3. Activez le fichier swap. Vérifiez s’il est activé.
Créez une zone de swap dans le fichier mem.swp :
root@system1:~# mkswap mem.swp
Mettez les droits adaptés à ce fichier :...