Retrouver un paramètre du noyau dans proc sys
Accéder à l'ensemble des vidéos de ce cours en illimité à partir de 99€ HT/an.
Script
Objectif et utilité
Vous allez retrouver le nom exact d'un paramètre du noyau en parcourant /proc/sys, et modifier sa valeur directement dans le fichier qui le représente.
Prérequis et point de départ
- Voir « Désactiver l'IPv6 avec sysctl ».
Explication et démarche
1. Sous Linux, tout est fichier
Contrairement aux paramètres de certains modules du noyau, qui n'ont pas toujours de représentation sous forme de fichier, les paramètres du noyau lui-même sont tous représentés par des fichiers, dans /proc/sys.
ls /proc/sys
Les sous-dossiers correspondent aux différents sous-systèmes du noyau : net, kernel, vm, fs…
2. Descendre dans l'arborescence
ls /proc/sys/net
ls /proc/sys/net/ipv6
ls /proc/sys/net/ipv6/conf
Dans conf, vous trouvez un dossier par interface réseau, plus default et all. Pour une désactivation complète, choisissez all :
ls /proc/sys/net/ipv6/conf/all
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
3. La correspondance avec sysctl
Le nom net.ipv6.conf.all.disable_ipv6 utilisé par sysctl reprend exactement ce chemin, avec des points à la place des barres obliques.
4. Modifier la valeur sans sysctl
Les paramètres étant des fichiers, vous pouvez les modifier avec des commandes classiques, en tant que root :
sudo -i
echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6
ip -c -br address
Les adresses IPv6 sont de retour.
Résultat attendu et vérification
Vous retrouvez le chemin d'un paramètre dans /proc/sys et vous savez en déduire son nom pour sysctl.
Points de vigilance et bonnes pratiques
- La principale difficulté est de se rappeler que ces paramètres sont dans
/proc/sys, et non dans/sys. - La modification directe dans
/proc/sysest, elle aussi, temporaire.
À retenir et mise en pratique
/proc/sys/net/ipv6/conf/all/disable_ipv6⇔net.ipv6.conf.all.disable_ipv6.
Exercice. En parcourant /proc/sys/net/ipv4, retrouvez le paramètre qui active le routage (forwarding) des paquets IPv4 et affichez sa valeur avec sysctl.
Critère de réussite : vous affichez net.ipv4.ip_forward et sa valeur.
Référence
- Page de manuel
proc_sys(5): https://manpages.debian.org/proc_sys.5 - Documentation du noyau,
/proc/sys: https://docs.kernel.org/admin-guide/sysctl/index.html