.\" %NetBSD: passwd.5,v 1.12.2.2 1999/12/17 23:14:50 he Exp % .\" .\" Copyright (c) 1988, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" Portions Copyright (c) 1994, Jason Downs. 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. .\" .\" From: @(#)passwd.5 8.1 (Berkeley) 6/5/93 .\" %FreeBSD: src/share/man/man5/passwd.5,v 1.42.2.1 2005/02/08 20:01:41 trhodes Exp % .\" .\" $FreeBSD$ .\" .\" WORD: NIS/YP INTERACTION NIS/YP との相互作用 [yppasswd.1] .\" WORD: accounting アカウンティング (パスワード期限等の意味) .\" WORD: epoch 基準時点 .Dd February 7, 2005 .Dt PASSWD 5 .Os .Sh 名称 .Nm passwd , .Nm master.passwd .Nd パスワードファイルのフォーマット .Sh 解説 .Nm ファイルは、ローカルに保持しているパスワード情報の情報源です。 これらは Hesiod ドメインにおける .Sq passwd と .Sq uid や、 .Tn NIS マップの .Sq passwd.byname , .Sq passwd.byuid , .Sq master.passwd.byname , .Sq master.passwd.byuid と共に使用され、 .Xr nsswitch.conf 5 によって制御されます。 .Pp 一貫性を保つため、これらのファイルはどれも手で変更を加えるべきではありません。 .Pp .Nm master.passwd ファイルは root からのみ読み取り可能で、改行で区切られたレコードから成ります。 ユーザごとに 1 レコードが対応し、コロン (``:'') で区切られた 10 個のフィールドが含まれます。 これらのフィールドは以下の通りです: .Pp .Bl -tag -width password -offset indent .It name ユーザのログイン名。 .It password ユーザの .Em 暗号化された パスワード。 .It uid ユーザの ID。 .It gid ユーザのログイングループ ID。 .It class ユーザのログインクラス。 .It change パスワードの変更時間。 .It expire アカウントの有効期限。 .It gecos ユーザについての一般的な情報。 .It home_dir ユーザのホームディレクトリ。 .It shell ユーザのログインシェル。 .El .Pp .Nm ファイルは、 .Xr pwd_mkdb 8 によって .Nm master.passwd ファイルから生成されます。 その際に、class, change そして expire フィールドは削除され、 password フィールドは ``*'' に置換されます。 .Pp .Ar name フィールドはコンピュータアカウントにアクセスするのに用いられるログインであり、 .Ar uid フィールドはそれに結び付けられた数字です。 これらはファイルアクセスを制御するので、両方共そのシステム (また、しばしば 1 まとまりの複数のシステム) の中で一意であるべきです。 .Pp 同じログイン名や同じユーザ ID のエントリを複数持つことは可能ですが、 普通それは誤りです。 これらのファイルを取り扱うルーチンは、しばしばその複数エントリの 1 つだけを返しますし、それはランダムな選択によるものです。 .Pp ログイン名は決してハイフン (``-'') で始めてはいけません。 また、メーラを混乱させやすいので、大文字やドット (``.'') も 名前の一部にしないことを強く推奨します。 歴史的にユーザデータベース中でフィールドを区切るのに使われてきたため、 どのフィールドもコロン (``:'') を含んではなりません。 .Pp password フィールドはパスワードの .Em 暗号化された 形です。 .Xr crypt 3 を参照してください。 .Ar password フィールドが空の場合、マシンへのアクセスにはパスワードを要求されません。 このようにすることは、ほとんど常に誤りです。 これらのファイルは暗号化されたユーザパスワードを含んでいるので、 適切な権限の無い人から読み取り可能にしておくべきではないでしょう。 .Pp group フィールドは、ユーザがログインした際に位置付けられるグループです。 このシステムではマルチグループ .Pf ( Xr groups 1 参照) をサポートしているので、 このフィールドにはほとんど特別な意味はありません。 .Pp .Ar class フィールドは、ユーザのログインクラスに対するキーです。 ログインクラスは .Xr login.conf 5 の中で定義されます。 .Xr login.conf 5 は、ユーザの属性、アカウンティング、リソース、環境設定に関する .Xr termcap 5 形式のデータベースです。 .Pp .Ar change フィールドは .Dv UTC における基準時点からの秒数を表したものであり、 この時までにアカウントに対するパスワードを変更する必要があります。 パスワードの時限機能をなくすには、このフィールドを空にしておきます。 .Pp .Ar expire フィールドは .Dv UTC における基準時点からの秒数を表したものであり、 その時にアカウントが失効します。 アカウントの時限機能をなくすには、このフィールドを空にしておきます。 .Pp .Ar gecos フィールドは、コンマ (``,'') で区切られた以下のようなサブフィールドを 通常含んでいます: .Pp .Bl -tag -width office -offset indent -compact .It name ユーザのフルネーム .It office ユーザのオフィス番号 .It wphone ユーザの職場の電話番号 .It hphone ユーザの自宅の電話番号 .El .Pp フルネームはアンパサンド (``&'') を含むことができます。 これは、gecos フィールドが表示される時や、 .Xr finger 1 , .Xr sendmail 8 などの様々なプログラムで使用される時に、 キャピタライズは先頭の一文字を大文字にする (訳注: Charlie Root みたいに) ので、ログイン名の先頭一文字を大文字にしたものに置換されます。 .Pp オフィスと電話番号フィールドは .Xr finger 1 によって使われていますし、 その他のアプリケーションでもおそらく使われています。 .Pp ユーザのホームディレクトリは、ログインした時にユーザが置かれる完全な .Ux パス名です。 .Pp shell フィールドは、ユーザの好みのコマンドインタプリタです。 .Ar shell フィールドになにも無ければ Bourne シェル .Pq Pa /bin/sh が指定されたものと解釈します。 .Sh HESIOD サポート .Xr nsswitch.conf 5 に .Sq passwd データベースとして .Sq dns が指定されていた場合、 .Nm 検索は .Sq passwd Hesiod ドメインから開始されます。 .Sh NIS サポート .Xr nsswitch.conf 5 に .Sq passwd データベースとして .Sq nis が指定されていた場合、 .Nm 検索は .Sq passwd.byname , .Sq passwd.byuid , .Sq master.passwd.byname そして .Sq master.passwd.byuid .Tn NIS マップから開始されます。 .Sh COMPAT サポート .Xr nsswitch.conf 5 に .Sq passwd データベースとして .Sq compat が指定されており、 .Sq passwd_compat データベースとして .Sq dns か .Sq nis のどちらかが指定されていた場合、 .Nm ファイルは、ユーザ名とネットグループに基づいた、 .Sq +/- による標準的な排除と取り込み機能もサポートします。 .Pp ``-'' (マイナス符号)によって開始された行は、 それ以降の ``+'' (プラス符号) によってマークされた取り込みからは排除されます。 .Pp 行の 2 番目の文字が ``@'' (単価記号) の場合、 その操作は .Ar name フィールドの残りの文字列で指定されるネットグループ中の すべてのエントリに対して行われます。 そうでない場合、 .Ar name フィールドの残りの部分はユーザ名を指定するものと解釈されます。 .Pp ``+'' トークンは、 .Ar name フィールドに単独で現れても構いません。 この場合、Hesiod ドメイン .Nm .Pf ( Sq passwd_compat: dns を指定した時)、もしくは .Sq passwd.byname と .Sq passwd.byuid .Tn NIS マップ .Pf ( Sq passwd_compat: nis を指定した時) のどちらかから、すべてのユーザが取り込まれます。 .Pp エントリの .Ar uid や .Ar gid フィールドが空でない場合、Hesiod ドメインもしくは .Tn NIS マップから取り込まれた情報を、指定された数字で上書きします。 同様にして、 .Ar gecos , .Ar dir , .Ar shell フィールドにテキストが含まれている場合、Hesiod や .Tn NIS を介して取り込まれた情報をそのテキストで上書きします。 いくつかのシステムでは、 .Ar passwd フィールドも上書きできます。 .Sh 関連ファイル .Bl -tag -width ".Pa /etc/master.passwd" -compact .It Pa /etc/passwd パスワードを除いた .Tn ASCII パスワードファイル .It Pa /etc/pwd.db パスワードを除いた .Xr db 3 形式のパスワードデータベース .It Pa /etc/master.passwd パスワードの入った .Tn ASCII パスワードファイル .It Pa /etc/spwd.db パスワードの入った .Xr db 3 形式のパスワードデータベース .El .Sh 関連項目 .Xr chpass 1 , .Xr login 1 , .Xr passwd 1 , .Xr crypt 3 , .Xr getpwent 3 , .Xr login.conf 5 , .Xr netgroup 5 , .Xr adduser 8 , .Xr pw 8 , .Xr pwd_mkdb 8 , .Xr vipw 8 , .Xr yp 8 .Pp .%T "Managing NFS and NIS" (O'Reilly & Associates) .Sh バグ ユーザ情報は他のどこかに入れるべき (そしていつかは入れる) でしょう。 .Pp ファイル中で .Sq compat の排除を取り込みの後に行うことは、予期しない結果をもたらすでしょう。 .Sh 互換性 パスワードファイル形式は .Bx 4.3 以降で変更されました。 以下の awk スクリプトは、古いスタイルの パスワードファイルを新しいスタイルのパスワードファイルに 変換するのに利用できます。 .Dq class , .Dq change , .Dq expire フィールドが追加されましたが、デフォルトでは無効になっています。 現在 class は実装されていませんが、change と expire は実装されています。 これらを設定するには、基準時点から今日までの秒数に、 好きなだけオフセットを秒数にして加えたものを使用してください。 .Bd -literal -offset indent BEGIN { FS = ":"} { print $1 ":" $2 ":" $3 ":" $4 "::0:0:" $5 ":" $6 ":" $7 } .Ed .Sh 歴史 .Nm ファイルは .At v6 で登場しました。 .Pp .Tn NIS .Nm ファイル形式は、SunOS ではじめて登場しました。 .Pp Hesiod サポートは、 .Fx 4.1 ではじめて登場しました。 これは .Nx プロジェクトから取り込まれました。 こちらでは、 .Nx 1.4 ではじめて登場しました。