UTMP(5)

명칭
utmp, wtmp, lastlog - 로그인 기록

서식
<sys/types.h> <utmp.h>

해설
<utmp.h> 파일은, utmp 파일에서의 현재의 유저에 대한 정보나 wtmp 파일중에서의 로그인이나 로그아웃의 정보, lastlog 파일중에서의 최종 로그인 정보의 기록을 위해서(때문에) 사용되는 구조체를 선언하고 있습니다. 시각의 변경이나 셧다운 및 리부트의 타임 스탬프는, 똑같이 wtmp 파일에 기록됩니다.

    #define _PATH_UTMP      "/var/run/utmp"
    #define _PATH_WTMP      "/var/log/wtmp"
    #define _PATH_LASTLOG   "/var/log/lastlog"
    #define UT_NAMESIZE     16
    #define UT_LINESIZE     8
    #define UT_HOSTSIZE     16
    struct lastlog {
            time_t  ll_time;		/* 유저가 몇시 로그인했는지 */
            char    ll_line[UT_LINESIZE];	/* 단말선명 */
            char    ll_host[UT_HOSTSIZE];	/* 유저의 출신 호스트 */
    };
    struct utmp {
            char    ut_line[UT_LINESIZE];	/* 단말선명 */
            char    ut_name[UT_NAMESIZE];	/* 유저의 로그인명 */
            char    ut_host[UT_HOSTSIZE];	/* 유저의 출신 호스트 */
            time_t  ut_time;		/* 유저가 몇시 로그인했는지 */
    };

lastlog 파일은, lastlog 구조체의 선형배열이며, 유저의 UID 그리고 인덱스 되고 있습니다. utmp 파일은, utmp 구조체의 선형배열이며, 단말 선번 호 ( ttyslot(3) 참조)로 인덱스 되고 있습니다. wtmp 파일은, utmp 구조체로부터 완성되는 바이너리 로그 파일이며, 파일의 종단에 덧붙여 씀 되어 갑니다.

유저가 로그인할 때마다, login(1) 프로그램은 lastlog 파일중의 유저의 UID (을)를 검색합니다. 만약 발견되었을 경우, 유저가 마지막에 로그인했을 때 각의 타임 스탬프, 단말선, 호스트명이 표준 출력에 써내집니다 ( 로그인이 메세지를 표시하지 않는다 같게 설정되어 있지 않은 경우. login(1) (을)를 참조 ). login(1) 프로그램은, 그 후 lastlog 파일에 새로운 로그인 시각을 기록합니다.

새롭다 lastlog 에의 기록이 써내진 다음에, utmp 파일이 오픈되어 유저에 대한다 utmp 기록이 삽입됩니다. 이 기록은, 유저가 로그아웃 해 삭제될 때까지 보관 유지됩니다. utmp 파일은, rwho(1), users(1), w(1), who(1) 프로그램으로 사용됩니다.

다음에, login(1) 프로그램은 wtmp 파일을 오픈해, 유저의 utmp 기록을 추가합니다. 그 후 유저가 단말선으로부터 로그아운트 하면(자), 특별한 utmp 레코드가 기록됩니다. 즉 ut_line 하지만 적절히 설정되어 ut_time 하지만 갱신됩니다만, ut_name (와)과 ut_host (은)는 하늘인 것이 기록됩니다 ( init(8) 참조). wtmp 파일은, last(1) (와)과 ac(8) 프로그램으로 사용됩니다.

시각 변경이나 셧다운·리부트 시에는, 이하의 항목이 wtmp 파일에 기록됩니다.

reboot
shutdown
    시스템의 리부트나 셧다운이 개시되었다. ut_line 필드에 ‘~’ 이렇게 말하는 캐릭터가, ut_name 필드안에 reboot 혹은 shutdown 하지만 기록됩니다 ( shutdown(8) (와)과 reboot(8) 참조).

date
    시스템 시각이 수동 혹은 자동으로 갱신되었다 ( date(1) 참조). 명령명 date 하지만 필드 ut_name 에 기록됩니다. ut_line 필드안의 ‘|’ 캐릭터는, 변경전의 시각을 나타내, ‘{’ 캐릭터는 새로운 시각을 나타내고 있습니다.

주
wtmp 파일은, 바쁜 시스템에서는 급속히 커지기 때문에, 매일 혹은 매주 로테션 하는 것을 추천 합니다. 이 파일은, newsyslog(8) 에 의해 관리됩니다.

이러한 파일이 존재하지 않는 경우, login(1) (은)는 이것들을 작성하지 않습니다. 이러한 파일은, 수동으로 작성할 필요가 있습니다.

utmp 및 wtmp 의 파일에 대한 통상의 조작은, 제공되었다 login(3), logout(3), logwtmp(3) 유틸리티 함수로 실시해, 이러한 파일의 서식이 다른 시스템간에서의 호환성을 유지해야 합니다.

관련 파일
/var/run/utmp
    utmp 파일.
/var/log/wtmp
    wtmp 파일.
/var/log/lastlog
    lastlog 파일.

관련 항목
last(1), login(1), w(1), who(1), login(3), logout(3), logwtmp(3), ttyslot(3), ac(8), init(8)

역사
utmp (와)과 wtmp 파일 서식은 AT&T UNIX (으)로부터 등장했습니다. lastlog 파일 서식은 3.0BSD (으)로부터 등장했습니다.