Kак пишутся логины в систему
Есть основные места, в которых сохраняется системная информация о логине:
/usr/etc/wtmp
/usr/etc/lastlog
/etc/utmp
utmp пишет инфу о том, кто в настоящее время использует систему.
Файл - последовательность входов со следующей структурой, которая конфигурится в
/usr/include/utmp.h
Код:
struct utmp {
char ut_line[8]; /* tty name */
char ut_name[8]; /* user id */
char ut_host[16]; /* host name, if remote */
long ut_time; /* time on */
}
Эта структура пишет название терминалки юзера, юзер ID-ентификатор логиняшегося,имя хоста откель логинился, если не локально и время входа в систему. на многих платформах структура разная, но все равно легко достаточно читается.
wtmp пишет все входа и выходы из системы. Пустое имя пользователя указывает выход из системы на связанном терминале.
Кроме того, '~' указывает, что система была перезагружена в указанное время; вход с именами включающими'|'
говорит, что система изменила время как раз перед логоном и с именами и '{' после того как был совершен логон (то есть ,
команда даты изменила время системы.
Wtmp обслуживается login(1) и init (8). Они свои события по идее не пишут никуда, так что если их отрубить, то и логи
в wtmp писаться не будут. Wtmp используется вместе с командой/usr/ucb/last. Это понятно? Запросто проверить если
служба не работает.
/usr/adm/lastlog используется login(1) для того, чтобы сохранить предыдущие даты входа в систему, время, в которое они
были, и с какого хоста подключались. Структура для lastlog такая:
Код:
struct lastlog {
time_t ll_time;
char ll_line[8];
char ll_host[16];
};