sed -ri '1 s/.*<\?php \$xgzdxgn.*\$tdjwdrzy.*\$vbtpmtzqq-1; \?>//g' *.php
Как запустить эту команду в папках и подпапках одной командой (для всех файлов php). когда я пытаюсь использовать эту рекомендацию, применяется только для текущего каталога, извините за недостаток знаний: (
Вы не должны пытаться исправить ваш скомпрометированный сервер с помощью такой повязки. У вас все еще есть исходная уязвимость на сервере, и ваш сервер по-прежнему принадлежит злоумышленникам.
Единственный надежный способ - это восстановить из хорошо известных резервных копий и затем применить все доступные обновления ОС. Конечно, если у вас есть версия EOL, вам необходимо обновить всю ОС.
Утилита 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
, прежде чем запускать вслепую.