UTMP(5)

名称
utmp, wtmp, lastlog - ログイン記録

書式
#include <sys/types.h> #include <utmp.h>

解説
<utmp.h> ファイルは、 utmp ファイルでの現在のユーザについての情報や wtmp ファイル中でのログインやログアウトの情報、 lastlog ファイル中での最終ログイン情報の記録のために使われる構造体を 宣言しています。 時刻の変更やシャットダウンおよびリブートのタイムスタンプは、同じように wtmp ファイルに記録されます。

これらのファイルは、忙しいシステムでは急速に大きくなりますので、 毎日もしくは毎週ローテションすることを推奨します。 もし、これらのファイルのどれかが存在しない場合、そのファイルは作成されません。 これらのファイルは、手動で作成されなければならず、 newsyslog(8) によって管理されます。

    #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];
            long    ut_time;
    };

ユーザがログインするたびに、 login(1) プログラムは lastlog ファイル中のユーザの UID を検索します。 もし見つかった場合、ユーザが最後にログインした時刻のタイムスタンプ、 端末線、ホスト名が標準出力に書き出されます ( ログインが メッセージを表示しない ように設定されていない場合。 login(1) を参照 )。 login プログラムは、その後 lastlog ファイルに新しいログイン時刻を記録します。

新しい lastlog への記録が書き出された後で、 utmp ファイルがオープンされ、ユーザに対する utmp 記録が挿入されます。 この記録は、ユーザがログアウトして削除される時まで保持されます。 utmp ファイルは、 rwho(1), users(1), w(1), who(1) プログラムで使われます。

次に、 login プログラムは wtmp ファイルをオープンし、ユーザの utmp 記録を追加します。 同じ utmp 記録が更新されたタイムスタンプ付きで、ユーザがログアウトした時に、 ファイルに追加されます ( 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 フィールド中の ‘\*(Ba’ 文字は、変更前の時刻を示し、 ‘{’ 文字は新しい時刻を示しています。

関連ファイル
/var/run/utmp
    utmp ファイル。
/var/log/wtmp
    wtmp ファイル。
/var/log/lastlog
    lastlog ファイル。

関連項目
last(1), login(1), w(1), who(1), ac(8), init(8)

歴史
A utmp と wtmp ファイル書式は AT&T UNIX から登場しました。 lastlog ファイル書式は 3.0BSD から登場しました。