Kontrola hodnoty proměnné sysctl je stejně snadná jako
sysctl <variable name>
a mimochodem, nastavení proměnné sysctl je stejně jednoduché jako
sudo sysctl -w <variable name>=<value>
ale změny provedené tímto způsobem pravděpodobně zůstanou zachovány pouze do příštího restartu.
Pokud jde o umístění konfigurace, /etc/sysctl.conf
nebo /etc/sysctl.d/
, má přednost, zde je to, co /etc/sysctl.d/README
soubor říká:
Koncoví uživatelé mohou použít 60-*.conf a vyšší, nebo použít /etc/sysctl.conf přímo, který přepíše cokoli v tomto adresáři .
Po úpravě konfigurace v kterémkoli ze dvou umístění lze změny použít pomocí
sudo sysctl -p
Tento druh věcí je obvykle v /proc
a/nebo /sys
rozhraní jádra (za prvé, mějte na paměti, že nic v těchto adresářích není běžný diskový soubor, všechno jsou to přímé linky do jádra).
Takže např.:
»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
Vypadá to, že mám nastavený rp_filter pro em1, wlan0 a "default". Můžete je nastavit nebo zrušit pouhým zápisem do popisovače souboru:
»cd /proc/sys/net/ipv4/conf/lo
»echo 1 > rp_filter
»cat rp_filter
1
»echo 0 > rp_filter
»cat rp_filter
0
Jak již bylo zmíněno, jedná se o přímou komunikaci s jádrem, takže se projeví okamžitě. Tyto nejsou konfigurační soubory. Pokud se pokusíte udělat něco špatně:
»echo whatever > rp_filter
bash: echo: write error: Invalid argument
Což samozřejmě neznamená, že nemůžete věci tímto způsobem podělat. A nezapomeňte si přečíst komentáře níže.