.\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)utmp.5 8.2 (Berkeley) 3/17/94 .\" %FreeBSD: src/share/man/man5/utmp.5,v 1.9.2.8 2001/12/17 11:30:15 ru Exp % .\" .\" $FreeBSD$ .Dd November 14, 2001 .Dt UTMP 5 .Os .Sh 名称 .Nm utmp , .Nm wtmp , .Nm lastlog .Nd ログイン記録 .Sh 書式 .In sys/types.h .In utmp.h .Sh 解説 .Aq Pa utmp.h ファイルは、 .Nm ファイルでの現在のユーザについての情報や .Nm wtmp ファイル中でのログインやログアウトの情報、 .Nm lastlog ファイル中での最終ログイン情報の記録のために使われる構造体を 宣言しています。 時刻の変更やシャットダウンおよびリブートのタイムスタンプは、同じように .Nm wtmp ファイルに記録されます。 .Bd -literal -offset indent #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; /* ユーザが何時ログインしたか */ }; .Ed .Pp .Nm lastlog ファイルは、 .Vt lastlog 構造体の線型配列であり、ユーザの .Tn UID でインデックスされています。 .Nm ファイルは、 .Vt utmp 構造体の線型配列であり、端末線番号 ( .Xr ttyslot 3 参照) でインデックスされています。 .Nm wtmp ファイルは、 .Vt utmp 構造体から成るバイナリログファイルであり、 ファイルの終端に追記されていきます。 .Pp ユーザがログインするたびに、 .Xr login 1 プログラムは .Nm lastlog ファイル中のユーザの .Tn UID を検索します。 もし見つかった場合、ユーザが最後にログインした時刻のタイムスタンプ、 端末線、ホスト名が標準出力に書き出されます ( ログインが .Em メッセージを表示しない ように設定されていない場合。 .Xr login 1 を参照 )。 .Xr login 1 プログラムは、その後 .Nm lastlog ファイルに新しいログイン時刻を記録します。 .Pp 新しい .Vt lastlog への記録が書き出された後で、 .\" the .\" .Xr libutil 3 .\" routine .Nm ファイルがオープンされ、ユーザに対する .Vt utmp 記録が挿入されます。 この記録は、ユーザがログアウトして削除される時まで保持されます。 .Nm ファイルは、 .Xr rwho 1 , .Xr users 1 , .Xr w 1 , .Xr who 1 プログラムで使われます。 .Pp 次に、 .Xr login 1 プログラムは .Nm wtmp ファイルをオープンし、ユーザの .Vt utmp 記録を追加します。 その後ユーザが端末線からログアウントすると、特別な .Vt utmp レコードが記録されます。 すなわち .Va ut_line が適切に設定され、 .Va ut_time が更新されますが、 .Va ut_name と .Va ut_host は空であるものが記録されます ( .Xr init 8 参照)。 .Nm wtmp ファイルは、 .Xr last 1 と .Xr ac 8 プログラムで使われます。 .Pp 時刻変更やシャットダウン・リブートの際には、 以下の項目が .Nm wtmp ファイルに記録されます。 .Pp .Bl -tag -width ".Li shutdown" -compact .It Li reboot .It Li shutdown システムのリブートやシャットダウンが開始された。 .Va ut_line フィールドに .Ql \&~ と言う文字が、 .Va ut_name フィールド中に .Li reboot もしくは .Li shutdown が記録されます ( .Xr shutdown 8 と .Xr reboot 8 参照)。 .Pp .It Li date システム時刻が手動もしくは自動で更新された ( .Xr date 1 参照)。 コマンド名 .Li date がフィールド .Va ut_name に記録されます。 .Fa ut_line フィールド中の .Ql \&| 文字は、変更前の時刻を示し、 .Ql \&{ 文字は新しい時刻を示しています。 .El .Sh 注 .Nm wtmp ファイルは、忙しいシステムでは急速に大きくなりますので、 毎日もしくは毎週ローテションすることを推奨します。 このファイルは、 .Xr newsyslog 8 によって管理されます。 .Pp これらのファイルが存在しない場合、 .Xr login 1 はこれらを作成しません。 これらのファイルは、手動で作成する必要があります。 .Pp .Nm および .Nm wtmp のファイルに対する通常の操作は、提供された .Xr login 3 , .Xr logout 3 , .Xr logwtmp 3 ユーティリティ関数で行い、 これらのファイルの書式が異なるシステム間での互換性を維持すべきです。 .Sh 関連ファイル .Bl -tag -width ".Pa /var/log/lastlog" -compact .It Pa /var/run/utmp .Nm ファイル。 .It Pa /var/log/wtmp .Nm wtmp ファイル。 .It Pa /var/log/lastlog .Nm lastlog ファイル。 .El .Sh 関連項目 .Xr last 1 , .Xr login 1 , .Xr w 1 , .Xr who 1 , .Xr login 3 , .Xr logout 3 , .Xr logwtmp 3 , .Xr ttyslot 3 , .Xr ac 8 , .Xr init 8 .Sh 歴史 .Nm と .Nm wtmp ファイル書式は .At v6 から登場しました。 .Nm lastlog ファイル書式は .Bx 3.0 から登場しました。