Можно ли использовать `find`, переданный `echo`, для нанесения огромного вреда?

Можно ли использовать `find`, переданный `echo`, для нанесения огромного вреда?

В настоящее время я прохожу курс Google Cybersecurity Coursera Cert. Сейчас я в разделе Linux и изучаю несколько команд Linux, я полный новичок в этом, но мне было интересно одно. Пока я учусь, я всегда пытаюсь думать о том, как защитник или злоумышленник может использовать эту команду, и недавно я узнал о echo >команде и о том, как она может перезаписать все. Я проверил, что ее можно использовать злонамеренно, но, конечно, я не понял ее полностью.

Мой вопрос, предположим, что злоумышленник получает доступ к чьему-то компьютеру и хочет быстро нанести вред пользователю, зная, что у него много .txtфайлов. Сработает ли эта команда?

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

Просто интересно, правильно ли я это понимаю. Это по сути создаст команду, которая найдет все .txtфайлы под /home/и затем echoперепишет все .txtфайлы со словом gg?

Если нет, то почему именно это не работает? Я хотел бы понять, почему это не работает, чтобы лучше понять это, и если идея технически работает, но команда написана неправильно, дайте мне знать, в какой части это неправильно.

решение1

Это не будет работать: echoне получает параметры из канала. findнайдет все .txtфайлы и передаст их в echo. Но echoпроигнорирует их и просто выведет gg.

>redirect просто попытается записать его в файл с именем, *.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

Связанный контент