Сообщение "[: 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 ]

Но имейте в виду, это взлом, а не постоянное решение. Вы должны написать сообщение об ошибке

Другие вопросы по тегам