Como interpretar todos os campos de 'utmpdump / var / log / utmp'

2

Gostaria de monitorar as sessões conectadas, incluir como eles se conectaram (console físico ou SSH) e por quanto tempo essa sessão existe.

Parece que utmpdump /var/log/utmp tem essa informação, mas não consigo encontrar a documentação que explica todos os campos. Alguém pode me esclarecer?

    
por Kyle Brandt 23.04.2014 / 19:19

2 respostas

5

Os campos são (nomes de membros de struct utmp em parantheses - veja man 5 utmp ):

  1. Tipo de registro ( ut_type )
  2. PID do processo de login ( ut_pid )
  3. Sufixo do nome do terminal ou inittab(5) ID ( ut_id )
  4. Nome de usuário ( ut_user )
  5. Nome do dispositivo ou tty - " /dev/ " ( ut_line )
  6. Nome do host para login remoto ou versão do kernel para mensagens em nível de execução ( ut_host )
  7. Endereço da Internet do host remoto ( ut_addr_v6 )
  8. A entrada de hora foi feita ( ut_time ou, na verdade, ut_tv.tv_sec )

Os valores possíveis para o primeiro campo ( ut_type ou "tipo de registro") são explicados em utmp(5) ( 6 , por exemplo, LOGIN_PROCESS ou "Processo líder da sessão para login do usuário"). / p>     

por 23.04.2014 / 19:30
1

Na função print_utline do código-fonte utmpdump , você pode encontrar uma pequena ajuda:

static void print_utline(struct utmp ut, FILE *out)
{
....
    /*       pid    id       user     line     host     addr       time */
fprintf(out, "[%d] [%05d] [%-4.4s] [%-*.*s] [%-*.*s] [%-*.*s] [%-15s] [%-28.28s]\n",
       ut.ut_type, ut.ut_pid, ut.ut_id, 8, UT_NAMESIZE, ut.ut_user,
       12, UT_LINESIZE, ut.ut_line, 20, UT_HOSTSIZE, ut.ut_host,
       addr_string, time_string);
}
    
por 23.04.2014 / 19:42

Tags