Для всех файлов, не содержащих строку, добавьте строку к файлу

Информация [1]

ИМХО, одна из самых пугающих вещей, которые может сделать эксплойт, - это собирать информацию и оставаться скрытой, чтобы вернуться и нанести удар, когда вашего внимания станет меньше (подойдет каждая ночь или праздничный период).
Следующее - это только первые причины, которые приходят мне в голову, вы можете добавлять другие и другие ...

  • Информация о службах , которые вы используете, их версиях и их слабые стороны, с особым вниманием к устаревшему, который вам может понадобиться сохранить в целях совместимости.
  • Периодичность , с которой вы обновляете их и исправления безопасности. Сидеть перед сводкой и ждать подходящего момента, чтобы попытаться вернуться.
  • привычки ваших пользователей, чтобы было меньше подозреваемых, когда они появятся.
  • защита , которую вы создали.
  • Если был получен хотя бы частичный root-доступ, то ssh-ключи , авторизованные хосты и пароли на этой и других машинах для каждого пользователя (предположим, что кто-то выполнил команду с паролем, переданным в качестве параметра, ему даже не нужны привилегии root). Было возможно сканировать память и извлекать ее. Я повторяю: в обоих направлениях, на вашу машину и с вашей машины. При двусторонней авторизации ssh между двумя машинами они могут продолжать входить и выходить из скомпрометированной учетной записи.

Так что сгладьте эту машину и следите за будущими паролями и ключами, по этим причинам выше и по всем другим причинам, которые вы можете прочитать из других ответов.


[1] Цитата не буквально Хичкока: «Выстрел из пистолета длится мгновение, но рука с оружием может длиться весь фильм»

0
25.02.2013, 13:36
3 ответа

Попробуйте следующее, которое должно вернуть рекурсивный результат

find /home/user/myfolder -name '*.html' -exec sh -c '
  for file do
    yourcommands with "$file"
  done' sh {} +

Больше о find и много примеров на http://en.wikipedia.org/wiki/Find, а также несколько разных вещей в https://unix.stackexchange.com/questions/tagged/find

1
29.04.2021, 00:50

Попробуйте сделать это :

find /home/user/myfolder -name '*.html' -exec sh -c '
    fgrep &>/dev/null "{% load static from staticfiles %}" "$1" ||
        sed -i '1i {% load static from staticfiles %}!' "$1"
' -- {} \;
0
29.04.2021, 00:50

Если у вас bash 4 или новее, вы можете использовать shopt -s globstar, чтобы включить рекурсивные глобы (среди прочего):

... job/**/*.html

(спасибо @evilsoup! )

Этот глобус разрешит все .html файлы в любом месте внутри job/ (пусть вас не вводит в заблуждение второй слэш; похоже, что глобус на самом деле **/).

Чтобы добавить текст в начало файла полубезопасно:

echo "text" | cat - yourfile > /tmp/out && mv /tmp/out yourfile

Более безопасным решением будет использование произвольного временного каталога, чтобы избежать вмешательства почти любых других процессов в этот:

dir="$(mktemp -d)" && echo "text" | cat - yourfile > "$dir/out" && mv "$dir/out" yourfile
0
29.04.2021, 00:50

Теги

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