【问题标题】:Remove CSF 'do not delete' IP entries with bash使用 bash 删除 CSF“请勿删除”IP 条目
【发布时间】:2021-10-08 08:43:51
【问题描述】:

有没有办法删除带有注释 # do not delete 的 CSF IP(自动使用 bash)?例如下面这个列表:

1.1.1.1 # do not delete
1.2.3.4 # This is another IP # do not delete
1.2.3.5 # This IP is bad # do not delete

如果我像这样使用 CSF 删除 IP 1.1.1.1

csf -dr 1.1.1.1

我会收到这个错误:

csf: 1.1.1.1 set as "do not delete" - not removed

当然,我可以通过编辑 csf.deny 并手动删除该注释行 # do not delete 来完美删除此 IP,然后当我运行 csf -d 1.1.1.1 时,它将被删除。

CSF 是否具有强制删除此条目的选项,或者是否有其他方法可以通过 bash 脚本自动执行此操作?有数百个条目具有此# do not delete。所以,这手动操作并不容易。

【问题讨论】:

  • 必须是-dr 而不是-d。看我的回答。

标签: bash csf


【解决方案1】:

你可以不使用csf -dr而使用grep命令:

#!/bin/bash

# Find IP:

ip="1.1.1.1"

search_csf_ip_without_comment=$(grep -w "^${ip}" "/etc/csf/csf.deny")

# If IP found:

if [[ -n "${search_csf_ip_without_comment}" ]]; then
  echo "IP found, remove and restarting csf ..." 
    grep -wv "^${ip}" "/etc/csf/csf.deny" >write.tmp && mv write.tmp "/etc/csf/csf.deny"

   csf -r > /dev/null
else

  echo "IP not found"
fi

【讨论】:

    猜你喜欢
    • 2016-08-02
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多