What I hence wonder is, what is the need/backgrounding motivation to have those files as sparse, huge files (in my case it was 1.1TB)?
Так и должно быть.
/var/log/lastlog
не является файлом журнала, как /var/log/syslog
, и его имя следует читать как «список последних входов в систему», а не как «последний файл журнала».
Поддерживается модулем pam_lastlog(8)
,и это в основном такой массив:
struct lastlog {
time_t ll_time; // 4
char ll_line[UT_LINESIZE]; // 32
char ll_host[UT_HOSTSIZE]; // 256
} entry[UINT_MAX];
Размеры полей на типичной машине x86 -64 указаны в комментариях; запись должна быть 4 + 32 + 256 = 292 байта.
Каждый раз, когда программа, использующая модуль pam pam_lastlog(8)
, регистрирует пользователя, она будет искать uid * sizeof(struct lastlog)
и перезаписывать запись, соответствующую этому пользователю.
did I corrupt anything with truncating those files ?
Вы испортили вывод команды lastlog(1)
, которую все равно никто не использует;-)