web-development-kb-pt.site

Por que / var / log / wtmp se torna tão grande? Como inspecionar arquivos wtmp?

Acabei de notar um arquivo wtmp de 640 MB em um contêiner virtual (Ubuntu Hardy).

# last -n 10000 -f /var/log/wtmp.1|wc -l
384
# ls -hl /var/log/wtmp.1
-rw-rw-r-- 1 root utmp 641M 21. Sep 07:49 /var/log/wtmp.1

logrotate não foi instalado (eu simplesmente fiz isso e forçou a rotação).

Existem registros lá que não estão sendo exibidos por last (que deveria mostrar as últimas 1000 entradas, mas aparentemente existem apenas 384).

De deslizar rapidamente o wtmp/utmp página man, não parece que uma única entrada deva usar cerca de 1,6 MB.

Existe outro programa além de last para inspecionar esses arquivos?

7
blueyed

logrotate foi uma boa ideia.

Como qualquer arquivo regular, wtmp poderia ser "esparso" (cf. lseek (2) "buracos" e ls -s) Que pode mostrar um tamanho de arquivo extremo que realmente ocupa pouco disco. Como o buraco foi parar lá, se era um buraco? getty(8) e amigos podem ter tido um bug. Ou uma falha do sistema e reparo do fsck podem ter causado isso.

Se você está procurando ver o conteúdo bruto de wtmp, od ou hd são bons para dar uma olhada nos binários e têm o feliz efeito colateral de mostrar longas execuções de vazio como tal.

A menos que ocorra novamente, eu não pensaria muito mais nisso. Um intruso marginalmente competente faria um trabalho melhor do que isso, os conteúdos não são tão interessantes e pouco depende deles.

6
msw

Apenas para ajudar outras pessoas que possam achar isso útil ...

Existe outro programa além de last para inspecionar esses arquivos?

Sim, tente utmpdump.

$ utmpdump /var/log/wtmp
7
Chucky

Se você duvida que o wtmp possa ter buracos, você pode se livrar deles com cp --sparse se você tiver coreutils novos suficientes, ou com fallocate --Dig-holes se você usa a versão 2.25 do util-linux ainda não lançada. Talvez uma abordagem mais prática seja reembalar o 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

E se mesmo assim o arquivo for bastante grande, basta girar e compactar.

mv /var/log/wtmp{,.1}
gzip -9 /var/log/wtmp.1
1
kerolasa