No Linux, não há um único evento de "login" - cada programa pode implementá-lo de maneira própria. O mais próximo é o PAM ... para aplicativos que usam o PAM. A maioria faz isso, mas, por exemplo, o SSH só chama pam_authenticate () se você efetuar login usando uma senha, mas não quando chaves públicas ou Kerberos são usadas, embora pam_open_session () seja sempre chamado.
Se você precisar registrar somente sessões interativas (SSH, console), assista /var/log/wtmp
(usando inotify ). Veja a página de manual de wtmp
para descrição da estrutura exata.
Para mail, [S] FTP, outros protocolos, você terá que usar /var/log/auth.log
, que infelizmente não tem um formato consistente.