utmp、wtmp、btmp 、およびutmpx、wtmpx、btmpxなどの派生ファイルは、 Unixライクなシステム上のファイルで、システムへのすべてのログインとログアウトを記録します。 [ 1 ]
これらのファイルは通常のテキストファイルではなく、特別に作成されたプログラムで編集する必要のあるバイナリ形式です。実装とファイルに含まれるフィールドはシステムまたはlibcのバージョンによって異なり、utmp.hヘッダーファイルで定義されています。wtmpおよびbtmp形式はutmpとまったく同じですが、「username」の値がnullの場合は、関連付けられた端末でのログアウトを示します(実際のユーザー名は、その端末での直前のログインを見つけることで特定されます)。さらに、端末名として「~」、ユーザー名が「shutdown」または「reboot」の場合は、それぞれシステムのシャットダウンまたは再起動を示します。[ 2 ]
これらのファイルは、特定のPAMモジュール(pam_unix.soやpam_sss.soなど)によって設定されるのではなく、操作を実行するアプリケーション(例えば、min getty、/bin/login、sshdなど)によって設定されます。したがって、utmp情報を記録するのはプログラム自身の責任です。
Utmpx と wtmpx は、 Sun Microsystemsが開発したオリジナルの utmp と wtmp の拡張です。Utmpx はPOSIXで規定されています。[ 3 ] utmp、wtmp、btmp ファイルは、Single UNIX Specificationなどの公式 Unix 標準の一部ではありませんでしたが、utmpx と対応する API は標準の一部です。[ 4 ] [ 5 ]一部のシステムでは、utmpx バリアント用に新しい異なるファイルを作成し、以前の形式を非推奨/廃止していますが、常にそうとは限りません。たとえば、 Linux では、古いファイル構造の代わりに utmpx 構造を使用しています。
システムによっては、これらのファイルは一般的に異なる場所に存在する場合があります(以下は網羅的なリストではありません) 。
/etc/utmp /var/adm/wtmp
Linux :
/var/run/utmp /var/log/wtmp /var/log/btmp
/var/adm/utmp (非推奨)、/var/adm/utmpx /var/adm/wtmp (非推奨)、/var/adm/wtmpx
/etc/utmp (非推奨)、/etc/utmpx /var/adm/wtmp (非推奨)、/var/adm/wtmpx /var/adm/btmp (非推奨)、/var/adm/btmpx
FreeBSD 9.0では、utmpx のサポートを追加しながら新しいファイルが導入されました: [ 8 ]
/var/run/utx.active (utmp を置き換えます) /var/log/utx.lastlogin (lastlog を置き換えます) /var/log/utx.log (wtmp を置き換えます)
さまざまなコマンドを使用することで、ユーザーはこれらのファイルに保存されている情報を参照できます。これには、 who(現在のシステムユーザーを表示する)、last(最後にログインしたユーザーを表示する)、lastb(最後のログイン失敗回数を表示する;Linux固有)などのプログラムが含まれます。