この種のものは通常、/proc
および/または/sys
カーネルインターフェースにあります(最初に、これらのディレクトリには通常のディスクファイルはなく、すべてカーネルへの直接の行であることに注意してください)。
したがって、たとえば:
»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
em1、wlan0、および「default」にrp_filterが設定されているようです。ファイルハンドルに書き込むだけで、それらを設定または設定解除できます。
»cd /proc/sys/net/ipv4/conf/lo
»echo 1 > rp_filter
»cat rp_filter
1
»echo 0 > rp_filter
»cat rp_filter
0
前述のように、これはカーネルとの直接通信であるため、すぐに有効になります。これらは構成ファイルではありません。何か間違ったことをしようとした場合:
»echo whatever > rp_filter
bash: echo: write error: Invalid argument
もちろん、この方法で物事を台無しにできないわけではありません。そして、以下のコメントを必ずお読みください。
sysctl -e
編集や構成sysctl -f
の実行のためではありませんか?