Controllare il valore di una variabile sysctl è facile come
sysctl <variable name>
e, a proposito, impostare una variabile sysctl è semplice come
sudo sysctl -w <variable name>=<value>
ma le modifiche apportate in questo modo probabilmente rimarranno valide solo fino al prossimo riavvio.
Per quanto riguarda quale delle posizioni di configurazione, /etc/sysctl.conf
o /etc/sysctl.d/
, ha la precedenza, ecco cosa /etc/sysctl.d/README
file dice:
Gli utenti finali possono utilizzare 60-*.conf e versioni successive oppure utilizzare /etc/sysctl.conf direttamente, che sovrascrive qualsiasi cosa in questa directory .
Dopo aver modificato la configurazione in una qualsiasi delle due posizioni, le modifiche possono essere applicate con
sudo sysctl -p
Questo genere di cose è di solito nel /proc
e/o /sys
interfacce del kernel (in primo luogo, tieni presente che nulla in quelle directory è un normale file su disco, sono tutte linee dirette al kernel).
Quindi, ad esempio:
»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
Sembra che io abbia impostato rp_filter per em1, wlan0 e "default". Puoi impostarli o disattivarli semplicemente scrivendo sull'handle del file:
»cd /proc/sys/net/ipv4/conf/lo
»echo 1 > rp_filter
»cat rp_filter
1
»echo 0 > rp_filter
»cat rp_filter
0
Come accennato, si tratta di una comunicazione diretta con il kernel, quindi ha effetto immediato. Questi non lo sono file di configurazione. Se provi a fare qualcosa di sbagliato:
»echo whatever > rp_filter
bash: echo: write error: Invalid argument
Il che non vuol dire che non puoi rovinare le cose in questo modo, ovviamente. E assicurati di leggere i commenti qui sotto.