ИМХО, одна из самых пугающих вещей, которые может сделать эксплойт, - это собирать информацию и оставаться скрытой, чтобы вернуться и нанести удар, когда вашего внимания станет меньше (подойдет каждая ночь или праздничный период).
Следующее - это только первые причины, которые приходят мне в голову, вы можете добавлять другие и другие ...
Так что сгладьте эту машину и следите за будущими паролями и ключами, по этим причинам выше и по всем другим причинам, которые вы можете прочитать из других ответов.
[1] Цитата не буквально Хичкока: «Выстрел из пистолета длится мгновение, но рука с оружием может длиться весь фильм»
Попробуйте следующее, которое должно вернуть рекурсивный результат
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
Попробуйте сделать это :
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"
' -- {} \;
Если у вас 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