Проверка исходников на наличие вредоносного кода.

Во конструктив намечается. А как сделать чтоб искало в каждом файле внутри архива или каталога? Ато распаковывать архив, а потом грепать каждый файл вручную тоже не очень интересно (только что проверил, в архиве искать не хочет).
tunguska% file `which bzgrep`
/usr/bin/bzgrep: POSIX shell script text executable
tunguska% file `which zgrep` 
/usr/bin/zgrep: POSIX shell script text executable
tunguska% file `which grep` 
/bin/grep: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
Разберемся, голубчик!
vadik
Во конструктив намечается. А как сделать чтоб искало в каждом файле внутри архива или каталога? Ато распаковывать архив, а потом грепать каждый файл вручную тоже не очень интересно (только что проверил, в архиве искать не хочет).
Зачитать ман по grep, zcat и tar вслух?..

Задача заведомо нерешаемая. Проверить архивы на однострочник который (на минуточку), имеет больше чем одно написание конечно можно, но будет ли с этого какой нибудь толк?.. А вдруг в коде есть строка которая удаляет все пользовательские файлы?.. “рм рф нет в коде” бодро скажет скрипт и пользователь смело поставит пакет который удалит всю домашнюю папку.

Я к тому, что такие автоматизации отучают думать и опасаться чужого кода, в следствие чего теряется контроль над системой.
Спасибо за то, что так подробно все объяснили.
Ну да ладно. С чем разобрался.
Сначала
cd /tmp
затем
tar -xvf /путь_к_архиву/имя_архива.tar.bz2
далее
grep -i -n -f /путь_к_файлу_с_образцами /tmp/имя_архива/*> /путь_к_папке_с_логами/имя_архива.log
И в заключении
rm -r /tmp/имя_архива
Вопрос первый - насколько корректны и правильны указанные выше действия?
Вопрос второй - собственно как эти команды запихнуть в скрипт. Точнее, как запихнуть в скрипт понятно, не понятно как вместо /путь_к_архиву/имя_архива.tar.bz2 и имя_архива использовать параметры передаваемые скрипту при запуске из терминала (имеется ввиду запуск скрипта с ключем /путь_к_архиву/имя_архива.tar.bz2)?
vadik
Вопрос первый - насколько корректны и правильны указанные выше действия?
Можно никуда не перекидывать, а проверять файлы налету, через конвейер.

vadik
Вопрос второй - собственно как эти команды запихнуть в скрипт. Точнее, как запихнуть в скрипт понятно, не понятно как вместо /путь_к_архиву/имя_архива.tar.bz2 и имя_архива использовать параметры передаваемые скрипту при запуске из терминала (имеется ввиду запуск скрипта с ключем /путь_к_архиву/имя_архива.tar.bz2)?
Аргументы запуска нумеруются как - $1, $2, $3 …

http://www.opennet.ru/docs/RUS/bash_scripting_guide/
Т.е. если я к примеру хочу запускать скрипт командой
skript /путь_к_архиву/имя_архива.tar.bz2
То команда для распаковки будет выглядет так:
tar -xvf $1
?
Если да, то каким образом получить имя архива для передачи его grep.
Понимаю что вопросы дурацкие, но я с админством/программированием никак не связан (не учился, не работаю, не имею), та ссылочка что вы дали у меня есть, даже пытался читать, но …
Amigo
grep "rm -rf" file.src.gz

Виндузятники заливались горючими слезами когда читали это :)
ну, забыл z поставить перед grep, но в целом идея, я думаю, ясна :)
Разберемся, голубчик!
Amigo
ну, забыл z поставить перед grep, но в целом идея, я думаю, ясна :)
Я и не про синтаксис говорил, а именно про идею :) Как хорошо было бы вантузятнику иметь всего лишь один вирус aka rm -rf. Да и дистрибутив самой венды просканить.
Набираю для примера
zgrep "Please see COPYING for details" /путь/conky-1.8.0_rc2.tar.gz
получаю
Двоичный файл (стандартный ввод) совпадает
Запрашиваемая строка есть точно.
Что не так?
 
Зарегистрироваться или войдите чтобы оставить сообщение.