Сообщение "[: Binary: неожиданный оператор" при обновлении определений rkhunter 15.10
После обновления до Ubuntu GNOME 15.10 с 15.04 я заметил, что после запуска команды:
sudo rkhunter --update
Это я получаю этот вывод:
[ Rootkit Hunter version 1.4.2 ]
Checking rkhunter data files...
Checking file mirrors.dat [ No update ]
Checking file programs_bad.dat [ No update ]
Checking file backdoorports.dat [ No update ]
Checking file suspscan.dat [ No update ]
Checking file i18n/cn [ No update ]
Checking file i18n/de [ No update ]
Checking file i18n/en [ No update ]
/usr/bin/rkhunter: 7439: [: Binary: unexpected operator
Checking file i18n/tr [ No update ]
Checking file i18n/tr.utf8 [ No update ]
/usr/bin/rkhunter: 7439: [: Binary: unexpected operator
Checking file i18n/zh [ No update ]
Checking file i18n/zh.utf8 [ No update ]
Это соответствующий раздел файла журнала:
[20:47:33] Checking rkhunter data files...
[20:47:33] Info: Created temporary file '/var/lib/rkhunter/tmp/rkhunter.upd.80Dxz4681c'
[20:47:33] Info: Created temporary file '/var/lib/rkhunter/tmp/mirrors.dat.TQulAoe7Ji'
[20:47:33] Info: The mirrors file has been rotated: /var/lib/rkhunter/db/mirrors.dat
[20:47:33] Info: Executing download command '/usr/bin/wget -q -O "/var/lib/rkhunter/tmp/rkhunter.upd.80Dxz4681c" http://rkhunter.sourceforge.net/1.3/mirrors.dat 2>/dev/null'
[20:47:33] Info: This version : 2007060601
[20:47:34] Info: Latest version: 2007060601
[20:47:34] Checking file mirrors.dat [ No update ]
[20:47:34] Info: Executing download command '/usr/bin/wget -q -O "/var/lib/rkhunter/tmp/rkhunter.upd.80Dxz4681c" http://rkhunter.sourceforge.net/1.3/programs_bad.dat 2>/dev/null'
[20:47:34] Info: This version : 2014042901
[20:47:34] Info: Latest version: 2014042901
[20:47:34] Checking file programs_bad.dat [ No update ]
[20:47:34] Info: Executing download command '/usr/bin/wget -q -O "/var/lib/rkhunter/tmp/rkhunter.upd.80Dxz4681c" http://rkhunter.sourceforge.net/1.3/backdoorports.dat 2>/dev/null'
[20:47:34] Info: This version : 2010111401
[20:47:34] Info: Latest version: 2010111401
[20:47:34] Checking file backdoorports.dat [ No update ]
[20:47:34] Info: Executing download command '/usr/bin/wget -q -O "/var/lib/rkhunter/tmp/rkhunter.upd.80Dxz4681c" http://rkhunter.sourceforge.net/1.3/suspscan.dat 2>/dev/null'
[20:47:35] Info: This version : 2009112901
[20:47:35] Info: Latest version: 2009112901
[20:47:35] Checking file suspscan.dat [ No update ]
[20:47:35] Info: Executing download command '/usr/bin/wget -q -O "/var/lib/rkhunter/tmp/rkhunter.upd.80Dxz4681c" http://rkhunter.sourceforge.net/1.3/i18n/1.4.2/i18n.ver 2>/dev/null'
[20:47:35] Info: This version : 2009091601
[20:47:35] Info: Latest version: 2009091601
[20:47:35] Checking file i18n/cn [ No update ]
[20:47:35] Info: This version : 2014010301
[20:47:35] Info: Latest version: 2014010301
[20:47:35] Checking file i18n/de [ No update ]
[20:47:35] Info: This version : 2013112401
[20:47:35] Info: Latest version: 2013112401
[20:47:35] Checking file i18n/en [ No update ]
[20:47:35] Info: This version : Binary file /var/lib/rkhunter/db/i18n/tr matches
[20:47:35] Info: Latest version: 2014030201
[20:47:35] Checking file i18n/tr [ No update ]
[20:47:35] Info: This version : 2014030201
[20:47:35] Info: Latest version: 2014030201
[20:47:35] Checking file i18n/tr.utf8 [ No update ]
[20:47:35] Info: This version : Binary file /var/lib/rkhunter/db/i18n/zh matches
[20:47:35] Info: Latest version: 2009091601
[20:47:35] Checking file i18n/zh [ No update ]
[20:47:35] Info: This version : 2009091601
[20:47:35] Info: Latest version: 2009091601
[20:47:35] Checking file i18n/zh.utf8 [ No update ]
Так что же означают эти ошибки? Нужно ли что-нибудь с ними делать? И я должен сообщить о них?
Информация об ОС:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 15.10
Release: 15.10
Codename: wily
Flavour: GNOME
GNOME Version: 3.18
Информация о пакете:
rkhunter:
Installed: 1.4.2-3
Candidate: 1.4.2-3
Version table:
*** 1.4.2-3 0
500 http://archive.ubuntu.com/ubuntu/ wily/universe amd64 Packages
100 /var/lib/dpkg/status
1 ответ
Это глупая ошибка. Я добавил несколькоecho
в скрипте и вот результат:
В /usr/bin/rkhunter: 7439
скрипт пытается сравнить
Binary file /var/lib/rkhunter/db/i18n/tr matches
с
2014030201
в -lt
if [ $PROG_VERS -lt $LATEST_VERS ]; then
Это означает
PROG_VERS is not really a version number
Настоящая проблема в этой линии
PROG_VERS=`grep ${GREP_OPT} '^[Vv]ersion:[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$' "${DB_PATH}/i18n/${LANGFILE}" 2>/dev/null | tail ${TAIL_OPT}1 | cut -d: -f2`
добавил еще echo
дает это
sudo grep '^[Vv]ersion:[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$' /var/lib/rkhunter/db/i18n/tr 2>/dev/null | tail -n 1 | cut -d: -f2
и это возвращает
Binary file /var/lib/rkhunter/db/i18n/tr matches
Выглядит не очень хорошо.
Самое смешное, что все "бинарные файлы" - это текст ISO-8859, например
$ sudo file /var/lib/rkhunter/db/i18n/tr
/var/lib/rkhunter/db/i18n/tr: ISO-8859 text
Давайте проверим содержание
$ sudo cat /var/lib/rkhunter/db/i18n/tr
и мы видим
LOCK_USED:Kilitleme kullan�mda: zaman a��m� $1 saniye
LOCK_UNUSED:Kilitleme kullan�mda de�il
LOCK_WAIT:Kilit dosyas� bekleniyor
LOCK_FAIL:Kilit dosyas� al�namad�: rkhunter �al��mad�!
Парни и девушки, это не совсем ISO-8859. о_О
Я старался
sudo -i
rm -r /var/lib/rkhunter/db/i18n/*
без эффекта. После sudo rkhunter --update
у нас снова та же проблема, значит, загруженные файлы имеют неправильную кодировку.
А теперь действительно грязный хак. Преобразовать кодировку для всех файлов, например
sudo iconv -f ISO-8859-14 /var/lib/rkhunter/db/i18n/zh -t UTF-8 -o /var/lib/rkhunter/db/i18n/zh
и начать обновление снова
% sudo rkhunter --update
[ Rootkit Hunter version 1.4.2 ]
Checking rkhunter data files...
Checking file mirrors.dat [ No update ]
Checking file programs_bad.dat [ No update ]
Checking file backdoorports.dat [ No update ]
Checking file suspscan.dat [ No update ]
Checking file i18n/cn [ No update ]
Checking file i18n/de [ No update ]
Checking file i18n/en [ No update ]
Checking file i18n/tr [ No update ]
Checking file i18n/tr.utf8 [ No update ]
Checking file i18n/zh [ No update ]
Checking file i18n/zh.utf8 [ No update ]
Но имейте в виду, это взлом, а не постоянное решение. Вы должны написать сообщение об ошибке