Il est possible sous FreeBSD, NetBSD et OpenBSD de modifier des caractéristiques système “à chaud”.
Cette fonction est similaire aux modifications de fichiers virtuels de /proc sous GNU/Linux.
Prenons l'ultra classique example de l'activation de la fonction de passerelle ( ip forwarding ).
Identifions avant tout le nom du paramètre :
( nous prendrons comme exemple FreeBSD 4.x )
# sysctl -a|grep forward net.inet.ip.forwarding: 0 net.inet.ip.fastforwarding: 0 net.inet6.ip6.forwarding: 0
1ere remarque, les “variables” sont identifiées de manière similaire aux MIB snmp. On constate que la valeur net.inet.ip.forwarding ( qui selon toute vraisemblence, est celle que nous désirons modifier ) est placée à 0. Changeons cette valeur :
# sysctl -w net.inet.ip.forwarding=1
Et verifions que le changement est pris en compte :
#sysctl net.inet.ip.forwarding net.inet.ip.forwarding: 1
Parfait, la valeur a bien été modifiée. Pour garder les valeurs au prochain démarrage, il faut créer un fichier /etc/sysctl.conf au format suivant :
parametre=valeur
par exemple :
kern.securelevel=2 net.inet.ip.forwarding=1 ...
La commande sysctl -a vous donnera l'ensemble des variables ainsi que leurs valeurs, le plus souvent,
leurs noms sont relativement explicites, le cas échéant, reportez vous aux fichiers /usr/include :
sys/sysctl.h sys/socket.h sys/gmon.h vm/vm_param.h netinet/in.h netinet/icmp_var.h et netinet/udp_var.h