![](/img/trans.png)
[英]How do I write a bash script to automate setting up ufw rules using docker-machine?
[英]BASH script to modify /etc/ufw/before.rules
我正在嘗試編寫 Bash 腳本來自動修改 Ubuntu Server 18.04 中 /etc/ufw/before.rules 的過程
基本上我想在某些行中將 ACCEPT 替換為 DROP 。
我試圖做的是將原始字符串分配給一個變量,然后用所需的 output 將其替換為第二個變量。
我失敗得很慘,所以我在這里尋求幫助:)
這是我寫的,它完全沒有任何作用,但我希望你能明白:
#!/bin/bash
# makes a backup of the original before.rules file
sudo cp /etc/ufw/before.rules /etc/ufw/before.rules.bak
# ok icmp codes for INPUT
# Replaces ACCEPT for DROP
duA1="-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT"
duD1="-A ufw-before-input -p icmp --icmp-type destination-unreachable -j DROP"
teA1="-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT"
teD1="-A ufw-before-input -p icmp --icmp-type time-exceeded -j DROP"
ppA1="-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT"
ppD1="-A ufw-before-input -p icmp --icmp-type parameter-problem -j DROP"
erA1="-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT"
erD1="-A ufw-before-input -p icmp --icmp-type echo-request -j DROP"
sudo sed -i -e 's/$duA1/$duD1/g' /etc/ufw/before.rules
sudo sed -i -e 's/$teA1/$teD1/g' /etc/ufw/before.rules
sudo sed -i -e 's/$ppA1/$ppD1/g' /etc/ufw/before.rules
sudo sed -i -e 's/$erA1/$erD1/g' /etc/ufw/before.rules
# ok icmp code for FORWARD
duA2="-A ufw-before-forward -p icmp --icmp-type destination-unreachable -j ACCEPT"
duD2="-A ufw-before-forward -p icmp --icmp-type destination-unreachable -j DROP"
teA2="-A ufw-before-forward -p icmp --icmp-type time-exceeded -j ACCEPT"
teD2="-A ufw-before-forward -p icmp --icmp-type time-exceeded -j DROP"
ppA2="-A ufw-before-forward -p icmp --icmp-type parameter-problem -j ACCEPT"
ppD2="-A ufw-before-forward -p icmp --icmp-type parameter-problem -j DROP"
erA2="-A ufw-before-forward -p icmp --icmp-type echo-request -j ACCEPT"
erD2="-A ufw-before-forward -p icmp --icmp-type echo-request -j DROP"
sudo sed -i -e 's/$duA2/$duD2/g' /etc/ufw/before.rules
sudo sed -i -e 's/$teA2/$teD2/g' /etc/ufw/before.rules
sudo sed -i -e 's/$ppA2/$ppD2/g' /etc/ufw/before.rules
sudo sed -i -e 's/$erA2/$erD2/g' /etc/ufw/before.rules
將最后 4 行中的 ' 替換為 "。查看 shell 在對其進行評估之前如何處理命令行。在這種情況下,單引號會阻止 shell 擴展字符串中包含的變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.