chkrootkit бросает Сигнал 13 при поиске/var/tmp

Как насчет того, чтобы удалить запись, создавая снимок и затем пытаясь изменить Ваш/etc/fstab, таким образом, у Вас есть рабочий снимок, к которому можно откатывать?

Согласно странице справочника mount.cifs можно также указать пароль через password=arg. Кроме того, согласно той странице справочника нет никакого аргумента username=arg но вместо этого user=arg. Но это могло бы отличаться в Вашей системе, лучше проверить Вашу страницу справочника на корректные имена аргумента.

0
04.11.2016, 04:41
3 ответа

chkrootkit ищет файлы PHP в/tmp/и/var/tmp каталогах. Скорее всего, некоторые файлы там инициировали ошибку. В моем случае это был тестовый файл с большим количеством нулевых байтов - удаление файла решило проблему.

1
28.01.2020, 02:37
  • 1
    я создал testfile с большим количеством nullbytes с dd if=/dev/zero of=/var/tmp/nullbytes count=1 bs=1M но команда /usr/bin/find /var/tmp -type f -exec head -1 {} \; | grep php 2> /dev/null;date не бросил ошибок. это могло быть, что ошибка фиксируется с тех пор хрипящая? –  rubo77 26.11.2013, 12:56
  • 2
    у меня был подобный файл 1 ГБ длиной. Точная Ubuntu; возможно, более новые версии не имеют этой ошибки. –  VladV 26.11.2013, 14:14
  • 3
    Вот именно! Я создал файл на 1 ГБ только с нулевыми байтами, и затем я получил ошибку снова. так удаление того временного файла является решением. Жалость, которую я не знаю, как такой файл, возможно, был создан там во-первых –  rubo77 26.11.2013, 15:24
  • 4
    , я сообщил об этом этому debian bugreport: bugs.debian.org/cgi-bin/bugreport.cgi?bug=588121 –  rubo77 26.11.2013, 15:33

Проблема - это head в выходе близко stdout, первое head вывод работает правильно, но любая другая запись к сбою stdout с SIGPIPE.

Можно хотеть использовать другой подход

head -q -n1 $(find /somedir/ -type f)|grep someword

править

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

#!/bin/sh
shift
test -f "$1" || exit 1
read line <$1 
echo "$line"

Это не полно head совместимый, так используйте его только со стороны chkrootkit, который Вы отправили здесь.

0
28.01.2020, 02:37
  • 1
    поэтому, как я восстановил бы команду в своем вопросе соответственно? Это - исходный chkrootkit-сценарий –  rubo77 19.08.2013, 04:37

Вот простая реализация идей, лежащих в основе ответа Алекса ниже. Я закомментировал код примерно в строке 1241 основного сценария оболочки chkrootkit и добавил следующий за ним код замены:

###if [ `echo abc | head -n 1` = "abc" ]; then
###      fileshead="`${find} ${ROOTDIR}tmp ${ROOTDIR}var/tmp ${findargs} -type f -exec head -n 1 {} \; | $egrep '#!.*php' 2> /dev/null`" 
###else
###      fileshead="`${find} ${ROOTDIR}tmp ${ROOTDIR}var/tmp ${findargs} -type f -exec head -1 {} \; | grep '#!.*php' 2> /dev/null`"
###fi

SUFF=`date "+%m%d%H%M%S.%N"`
echo > /tmp/matches.$SUFF

for F in `${find} ${ROOTDIR}tmp ${ROOTDIR}var/tmp ${findargs} -type f -print`
do
    read line <$F
    match=`echo "$line" | grep '#!.*php' 2> /dev/null`
    if [ -n "$match" ]
    then
        echo "$F : $match" >> /tmp/matches.$SUFF
    fi
done

fileshead=`cat /tmp/matches.$SUFF`
rm -f /tmp/matches.$SUFF

Это работает и позволяет завершить chkrootkit.

1
28.01.2020, 02:37

Теги

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