tail head cat sleep
QR code linking to this page

manページ  — UTMP

名称

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_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) によって管理されます。

これらのファイルが存在しない場合、 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 ファイル書式は AT&T v6 から登場しました。 lastlog ファイル書式は BSD 3.0 から登場しました。

UTMP (5) November 14, 2001

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。

The wonderful thing about standards is that there are so many of them to choose from.
— Grace Murray Hopper