`utmpdump /var/log/utmp`의 모든 필드를 해석하는 방법

`utmpdump /var/log/utmp`의 모든 필드를 해석하는 방법

로그인 방법(물리적 콘솔 또는 SSH)을 포함하여 로그인된 세션과 세션이 지속된 기간을 모니터링하고 싶습니다.

이 정보가 있는 것 같은데 utmpdump /var/log/utmp모든 필드를 설명하는 문서를 찾을 수 없습니다. 누군가 나를 깨달을 수 있습니까?

답변1

필드는 다음과 같습니다( struct utmp괄호 안의 멤버 이름 - 참조 man 5 utmp).

  1. 레코드 유형( ut_type)
  2. 로그인 프로세스 PID( ut_pid)
  3. 단말기 이름 접미사 또는 inittab(5)ID( ut_id)
  4. 사용자 이름( ut_user)
  5. 장치 이름 또는 tty - " /dev/" ( ut_line)
  6. 원격 로그인을 위한 호스트 이름 또는 실행 수준 메시지를 위한 커널 버전( ut_host)
  7. 원격 호스트의 인터넷 주소( ut_addr_v6)
  8. 입력된 시간( ut_time또는 실제로 ut_tv.tv_sec)

ut_type첫 번째 필드(또는 "레코드 유형")에 가능한 값은 utmp(5)( 6예 : 또는 "세션 리더 프로세스에 로그인한 사용자")에 LOGIN_PROCESS설명되어 있습니다 .

답변2

print_utline소스 코드의 기능에서 utmpdump몇 가지 도움말을 찾을 수 있습니다.

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);
}

관련 정보