
我目前正在參加 Google 網路安全 coursera 證書課程。我現在在 Linux 部分學習一些 Linux 命令,我對它完全陌生,但我想知道一件事。在我學習的過程中,我總是嘗試思考防禦者或攻擊者如何使用所述命令,最近我了解了echo >
命令以及它如何覆蓋所有內容。我確實檢查過它可以被惡意使用,但當然我並不完全理解它。
我的問題是,假設攻擊者可以訪問某人的計算機,並希望快速對用戶造成一些損害,因為他知道他擁有許多.txt
文件。這個指令有用嗎?
find /home/ -name "*.txt*" | echo "gg" > "*.txt*"
只是想知道我是否理解正確。這基本上會創建一個命令來查找.txt
下面的所有文件/home/
,然後echo
用管道覆蓋所有.txt
帶有單字的文件gg
嗎?
如果不是,為什麼它不能正常工作?我想了解為什麼它不能幫助我更好地理解它,如果這個想法在技術上可行但命令寫錯了,請讓我知道哪一部分是錯的。
答案1
它不會工作:echo
不從管道接收參數。find
將找到所有.txt
文件並將其通過管道傳輸到echo
.但echo
會忽略它並只是輸出gg
。
>
*.txt*
如果您有權限,重定向只會嘗試將其寫入名為的檔案中。如果存在則覆蓋,不存在則建立。
答案2
由於 ThoriumBR 已經解釋過的原因,這是行不通的。
你正在尋找類似的東西
shopt -s globstar
for file in **/*.txt
do
echo "rr" > "$file"
done
或者
find . -name "*.txt" -print0 | while read -d $'\0' file
do
echo "rr" > "$file"
done