То, почему делает/var/log/wtmp, становится настолько огромным? Как осмотреть wtmp файлы?

Стандарт UNIX предоставляет пример кода для этого использования locale утилита:

if printf "%s\n" "$response" | grep -Eq "$(locale yesexpr)"
then
    affirmative processing goes here
else
    non-affirmative processing goes here
fi

Значение для 'yesexpr' в POSIX локаль (и на английских локалях в реальных системах) "^[yY]". Это должно быть интерпретировано как расширенное регулярное выражение. См. также noexpr.

7
21.09.2010, 09:06
3 ответа

logrotate была хорошая идея.

Как любой регулярный файл, wtmp, возможно, был "редок" (cf. lseek (2) "дыры" и ls -s) который может показать экстремальный размер файла, который на самом деле занимает мало диска. Как дыра добиралась там, если это была дыра? getty(8) и у друзей, возможно, была ошибка. Или системный катастрофический отказ и восстановление fsck, возможно, вызвали его.

Если Вы надеетесь видеть необработанное содержание wtmp, od или hd хороши для заглядывания на двоичные файлы и имеют счастливый побочный эффект показа длительных периодов пустых, как таковых.

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

6
27.01.2020, 20:16
  • 1
    Файл, кажется, не редок: вот уже начало нового файла (23 МБ): pastebin.com/NFtnyUJU, Если я понимаю это правильно, это похоже на набор логинов? (6=LOGIN_PROCESS). Машина является контейнером OpenVZ, выполняя BOINC (распределенные вычисления), таким образом, это могло бы столь же ожидаться. Была другая машина с огромным wtmp файлом (phpmyadmin, веб-сервер), где вывод hd более нечетные взгляды: pastebin.com/1UtxYudE –  blueyed 22.09.2010, 14:21

Просто чтобы помочь другим, которые могут найти это полезным....

Есть ли другая программа кроме последней для проверки этих файлов?

Да, попробуйте utmpdump.

$ utmpdump /var/log/wtmp
7
27.01.2020, 20:16

Если вы сомневаетесь, что в wtmp могут быть дыры, вы можете избавиться от них с помощью cp --sparse , если у вас достаточно новых coreutils, или с помощью fallocate --dig-hole , если вы используете еще не выпущенную версию util-linux 2.25. Возможно, более практичный подход - перепаковать wtmp.

utmpdump /var/log/wtmp | utmpdump -r > /tmp/newtmp
ls -l /var/log/wtmp /tmp/newtmp # if significantly smaller
chown root:root /tmp/newtmp
chmod 0554 /tmp/newtmp
mv /tmp/newtmp /var/log/wtmp

И даже если файл достаточно большой, просто поверните и сожмите.

mv /var/log/wtmp{,.1}
gzip -9 /var/log/wtmp.1
1
27.01.2020, 20:16

Теги

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