Bas*_*asj 4 scheduling iptables su shell-script time
我这样做,从我儿子的终端,有时给他互联网访问(默认禁用):
./unblockinternet.sh
<enter password>
Run Code Online (Sandbox Code Playgroud)
使用这个脚本:
su -c "iptables -D OUTPUT -m owner --uid-owner son -j REJECT"
Run Code Online (Sandbox Code Playgroud)
如何使它再次自动阻止网络,例如,1 小时后?(它已经son
在重新启动后再次阻止用户,但我也想在 3600 秒后阻止它)
更准确地说,如何添加一个计时器来做su -c "iptables -A OUTPUT -m owner --uid-owner son -j REJECT"
3600 秒后,此时无需输入密码?显然,我不会正好在 3600 秒后正好在他的终端上。
你可以使用at
:
sudo at next hour -f myiptablesscript
Run Code Online (Sandbox Code Playgroud)
哪里myiptablescript
有禁用访问的命令,或者像这样的一行
sudo at next hour -f /dev/stdin <<< "iptables -A OUTPUT -m owner --uid-owner son -j REJECT"
Run Code Online (Sandbox Code Playgroud)
您可以将解除阻塞和阻塞组合成一个两行脚本:
#!/bin/bash
iptables -D OUTPUT -m owner --uid-owner son -j REJECT
at next hour -f /dev/stdin <<< "iptables -A OUTPUT -m owner --uid-owner son -j REJECT"
Run Code Online (Sandbox Code Playgroud)
如果您将此脚本保存为unblockinternet
具有执行权限,则可以将其调用为
sudo ./unblockinternet
Run Code Online (Sandbox Code Playgroud)
这将立即删除阻止规则;并排队等待一小时后恢复。
归档时间: |
|
查看次数: |
500 次 |
最近记录: |