Vérifier la valeur d'une variable sysctl est aussi simple que
sysctl <variable name>
et, soit dit en passant, définir une variable sysctl est aussi simple que
sudo sysctl -w <variable name>=<value>
mais les modifications apportées de cette manière ne tiendront probablement que jusqu'au prochain redémarrage.
Pour savoir lequel des emplacements de configuration, /etc/sysctl.conf
ou /etc/sysctl.d/
, a priorité, voici ce que /etc/sysctl.d/README
le fichier dit :
Les utilisateurs finaux peuvent utiliser 60-*.conf et supérieur, ou utiliser /etc/sysctl.conf directement, qui remplace tout ce qui se trouve dans ce répertoire .
Après avoir modifié la configuration dans l'un des deux emplacements, les modifications peuvent être appliquées avec
sudo sysctl -p
Ce genre de choses est généralement dans le /proc
et/ou /sys
interfaces du noyau (tout d'abord, gardez à l'esprit que rien dans ces répertoires n'est un fichier disque normal, ce sont tous des lignes directes vers le noyau).
Ainsi, par exemple :
»for x in /proc/sys/net/ipv4/conf/*/rp_filter; do echo -ne "$x "`cat $x`"\n"; done
/proc/sys/net/ipv4/conf/all/rp_filter 0
/proc/sys/net/ipv4/conf/default/rp_filter 1
/proc/sys/net/ipv4/conf/em1/rp_filter 1
/proc/sys/net/ipv4/conf/lo/rp_filter 0
/proc/sys/net/ipv4/conf/wlan0/rp_filter 1
On dirait que j'ai défini rp_filter pour em1, wlan0 et "default". Vous pouvez les activer ou les désactiver en écrivant simplement dans le descripteur de fichier :
»cd /proc/sys/net/ipv4/conf/lo
»echo 1 > rp_filter
»cat rp_filter
1
»echo 0 > rp_filter
»cat rp_filter
0
Comme mentionné, il s'agit d'une communication directe avec le noyau, qui prend donc effet immédiatement. Ces ne sont pas fichiers de configuration. Si vous essayez de faire quelque chose de mal :
»echo whatever > rp_filter
bash: echo: write error: Invalid argument
Ce qui ne veut pas dire que vous ne pouvez pas gâcher les choses de cette façon, bien sûr. Et assurez-vous de lire les commentaires ci-dessous.