スポンサーリンク

UTMP(5) FreeBSD ファイルフォーマットマニュアル UTMP(5)

名称

utmp, wtmp, lastlog − ログイン記録

書式

#include <sys/types.h>
#include <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 {

int32_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];

/* ユーザの出身ホスト */
int32_t ut_time;

/* ユーザが何時ログインしたか */

};

lastlog ファイルは、 lastlog 構造体の線型配列であり、ユーザの UID でイン デックスされています。 utmp ファイルは、 utmp 構造体の線型配列であり、端 末線番号 ( ttyslot(3) 参照) でインデックスされています。 wtmp ファイル は、 utmp 構造体から成るバイナリログファイルであり、ファイルの終端に追記 されていきます。

デフォルトでは、ユーザがログインするたびに、 pam_lastlog(8) プログラムは lastlog ファイル中のユーザの UID を検索します。もし見つかった場合、ユーザ が最後にログインした時刻のタイムスタンプ、端末線、ホスト名が標準出力に書 き出されます。 pam_lastlog(8) プログラムは、その後 lastlog ファイルに新し いログイン時刻を記録します。

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

次に、 pam_lastlog(8) プログラムは wtmp ファイルをオープンし、ユーザの utmp 記録を追加します。その後ユーザが端末線からログアウトすると、特別な utmp レコードが記録されます。すなわち ut_line が適切に設定され、 ut_time が更新されますが、 ut_nameut_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) に よって管理されます。

これらのファイルが存在しない場合、 pam_lastlog(8) はこれらを作成しませ ん。これらのファイルは、手動で作成する必要があります。

utmp および wtmp のファイルに対する通常の操作は、提供された login(3), logout(3), logwtmp(3) ユーティリティ関数で行い、これらのファイルの書式が 異なるシステム間での互換性を維持すべきです。

関連ファイル

       /var/run/utmp

utmp ファイル。
/var/log/wtmp
wtmp
ファイル。
/var/log/lastlog
lastlog
ファイル。

関連項目

last(1), w(1), who(1), login(3), logout(3), logwtmp(3), ttyslot(3), ac(8), init(8), pam_lastlog(8)

歴史

utmpwtmp ファイル書式は Version 6 AT&T UNIX から登場しました。 lastlog ファイル書式は 3.0BSD から登場しました。

FreeBSD 10.0 November 14, 2001 FreeBSD 10.0

スポンサーリンク