Команда Sed для замены кода во всех файлах

sed -ri  '1 s/.*<\?php \$xgzdxgn.*\$tdjwdrzy.*\$vbtpmtzqq-1; \?>//g' *.php

Как запустить эту команду в папках и подпапках одной командой (для всех файлов php). когда я пытаюсь использовать эту рекомендацию, применяется только для текущего каталога, извините за недостаток знаний: (

0
задан 30 December 2017 в 11:27
2 ответа

Вы не должны пытаться исправить ваш скомпрометированный сервер с помощью такой повязки. У вас все еще есть исходная уязвимость на сервере, и ваш сервер по-прежнему принадлежит злоумышленникам.

Единственный надежный способ - это восстановить из хорошо известных резервных копий и затем применить все доступные обновления ОС. Конечно, если у вас есть версия EOL, вам необходимо обновить всю ОС.

0
ответ дан 5 December 2019 в 06:56

Утилита sed не может сделать это сама по себе, поскольку у нее нет опции рекурсии через каталоги. Вместо этого вы должны сделать что-то, что найдет файлы и загрузит их в sed, что-то вроде

find /path/to/start -type f -name '*.php' -print 0 | xargs -0 sed -ri  '1 s/.*<\?php \$xgzdxgn.*\$tdjwdrzy.*\$vbtpmtzqq-1; \?>//g'

должно помочь. Вероятно, неплохо было бы проверить это без -i , прежде чем запускать вслепую.

0
ответ дан 5 December 2019 в 06:56

Теги

Похожие вопросы