Как насчет того, чтобы удалить запись, создавая снимок и затем пытаясь изменить Ваш/etc/fstab, таким образом, у Вас есть рабочий снимок, к которому можно откатывать?
Согласно странице справочника mount.cifs
можно также указать пароль через password=arg
. Кроме того, согласно той странице справочника нет никакого аргумента username=arg
но вместо этого user=arg
. Но это могло бы отличаться в Вашей системе, лучше проверить Вашу страницу справочника на корректные имена аргумента.
chkrootkit ищет файлы PHP в/tmp/и/var/tmp каталогах. Скорее всего, некоторые файлы там инициировали ошибку. В моем случае это был тестовый файл с большим количеством нулевых байтов - удаление файла решило проблему.
Проблема - это 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, который Вы отправили здесь.
Вот простая реализация идей, лежащих в основе ответа Алекса ниже. Я закомментировал код примерно в строке 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.
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