`echo` にパイプされた `find` は、大きな損害を与えるために使用できますか?

`echo` にパイプされた `find` は、大きな損害を与えるために使用できますか?

私は現在、Google サイバーセキュリティ Coursera 認定コースを受講しています。現在 Linux セクションにいて、Linux コマンドをいくつか学習しています。まったくの初心者ですが、1 つ疑問に思っていることがあります。学習中は常に、防御側または攻撃側がこのコマンドをどのように使用するかを考えるようにしています。最近、echo >コマンドについて、そしてそれがすべてを上書きする方法を学びました。悪意を持って使用される可能性があることは確認しましたが、もちろん完全に理解したわけではありません。

私の質問は、攻撃者が誰かのコンピュータにアクセスし、そのユーザーが多数の.txtファイルを持っていることを知りながら、すぐに何らかの損害を与えたいと考えているとします。このコマンドは機能するでしょうか?

find /home/ -name "*.txt*" | echo "gg" > "*.txt*"

.txt私がこれを正しく理解しているかどうか疑問に思っています。これは基本的に、の下にあるすべてのファイルを検索し/home/、パイプを使用してすべてのファイルを単語でecho上書きするコマンドを作成するのでしょうか?.txtgg

そうでない場合、なぜ正確に動作しないのでしょうか? 理解を深めるために、なぜ動作しないのかを理解したいと思います。また、アイデアは技術的には機能するが、コマンドが間違って記述されている場合は、どの部分が間違っているのか教えてください。

答え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

関連情報