PASSWD

Section: File Formats (5)
索引 jman

BSD mandoc
 

索引

名称

passwd master.passwd - パスワードファイルのフォーマット  

索引

解説

ファイルは、ローカルに保持しているパスワード情報の情報源です。 これらは Hesiod ドメインにおける `passwd' と `uid' や、 NIS マップの `passwd.byname' `passwd.byuid' `master.passwd.byname' `master.passwd.byuid' と共に使用され、 nsswitch.conf5 によって制御されます。

一貫性を保つため、これらのファイルはどれも手で変更を加えるべきではありません。

master.passwd ファイルは root からのみ読み取り可能で、改行で区切られたレコードから成ります。 ユーザごとに 1 レコードが対応し、コロン (``:'') で区切られた 10 個のフィールドが含まれます。 これらのフィールドは以下の通りです:

name
ユーザのログイン名。
password
ユーザの 暗号化された パスワード。
uid
ユーザの ID。
gid
ユーザのログイングループ ID。
class
ユーザのログインクラス。
change
パスワードの変更時間。
expire
アカウントの有効期限。
gecos
ユーザについての一般的な情報。
home_dir
ユーザのホームディレクトリ。
shell
ユーザのログインシェル。

ファイルは、 pwd_mkdb8 によって master.passwd ファイルから生成されます。 その際に、class, change そして expire フィールドは削除され、 password フィールドは ``*'' に置換されます。

name フィールドはコンピュータアカウントにアクセスするのに用いられるログインであり、 uid フィールドはそれに結び付けられた数字です。 これらはファイルアクセスを制御するので、両方共そのシステム (また、しばしば 1 まとまりの複数のシステム) の中で一意であるべきです。

同じログイン名や同じユーザ ID のエントリを複数持つことは可能ですが、 普通それは誤りです。 これらのファイルを取り扱うルーチンは、しばしばその複数エントリの 1 つだけを返しますし、それはランダムな選択によるものです。

ログイン名は決してハイフン (``-'') で始めてはいけません。 また、メーラを混乱させやすいので、大文字やドット (``.'') も 名前の一部にしないことを強く推奨します。 歴史的にユーザデータベース中でフィールドを区切るのに使われてきたため、 どのフィールドもコロン (``:'') を含んではなりません。

password フィールドはパスワードの 暗号化された 形です。 crypt(3) を参照してください。 password フィールドが空の場合、マシンへのアクセスにはパスワードを要求されません。 このようにすることは、ほとんど常に誤りです。 これらのファイルは暗号化されたユーザパスワードを含んでいるので、 適切な権限の無い人から読み取り可能にしておくべきではないでしょう。

group フィールドは、ユーザがログインした際に位置付けられるグループです。 このシステムではマルチグループ ( groups(1) 参照) をサポートしているので、 このフィールドにはほとんど特別な意味はありません。

class フィールドは、ユーザのログインクラスに対するキーです。 ログインクラスは login.conf5 の中で定義されます。 login.conf5 は、ユーザの属性、アカウンティング、リソース、環境設定に関する termcap(5) 形式のデータベースです。

change フィールドは UTC における基準時点からの秒数を表したものであり、 この時までにアカウントに対するパスワードを変更する必要があります。 パスワードの時限機能をなくすには、このフィールドを空にしておきます。

expire フィールドは UTC における基準時点からの秒数を表したものであり、 その時にアカウントが失効します。 アカウントの時限機能をなくすには、このフィールドを空にしておきます。

gecos フィールドは、コンマ (``,'') で区切られた以下のようなサブフィールドを 通常含んでいます:

name
ユーザのフルネーム
office
ユーザのオフィス番号
wphone
ユーザの職場の電話番号
hphone
ユーザの自宅の電話番号

フルネームはアンパサンド (``&'') を含むことができます。 これは、gecos フィールドが表示される時や、 finger(1), sendmail(8) などの様々なプログラムで使用される時に、 キャピタライズは先頭の一文字を大文字にする (訳注: Charlie Root みたいに) ので、ログイン名の先頭一文字を大文字にしたものに置換されます。

オフィスと電話番号フィールドは finger(1) によって使われていますし、 その他のアプリケーションでもおそらく使われています。

ユーザのホームディレクトリは、ログインした時にユーザが置かれる完全な UNIX パス名です。

shell フィールドは、ユーザの好みのコマンドインタプリタです。 shell フィールドになにも無ければ Bourne シェル (/bin/sh ) が指定されたものと解釈します。  

索引

HESIOD サポート

nsswitch.conf5 に `passwd' データベースとして `dns' が指定されていた場合、 検索は `passwd' Hesiod ドメインから開始されます。  

索引

NIS サポート

nsswitch.conf5 に `passwd' データベースとして `nis' が指定されていた場合、 検索は `passwd.byname' `passwd.byuid' `master.passwd.byname' そして `master.passwd.byuid' NIS マップから開始されます。  

索引

COMPAT サポート

nsswitch.conf5 に `passwd' データベースとして `compat' が指定されており、 `passwd_compat' データベースとして `dns' か `nis' のどちらかが指定されていた場合、 ファイルは、ユーザ名とネットグループに基づいた、 `+/-' による標準的な排除と取り込み機能もサポートします。

``-'' (マイナス符号)によって開始された行は、 それ以降の ``+'' (プラス符号) によってマークされた取り込みからは排除されます。

行の 2 番目の文字が ``@'' (単価記号) の場合、 その操作は name フィールドの残りの文字列で指定されるネットグループ中の すべてのエントリに対して行われます。 そうでない場合、 name フィールドの残りの部分はユーザ名を指定するものと解釈されます。

``+'' トークンは、 name フィールドに単独で現れても構いません。 この場合、Hesiod ドメイン ( `passwd_compat: dns' を指定した時)、もしくは `passwd.byname' と `passwd.byuid' NIS マップ ( `passwd_compat: nis' を指定した時) のどちらかから、すべてのユーザが取り込まれます。

エントリの uidgid フィールドが空でない場合、Hesiod ドメインもしくは NIS マップから取り込まれた情報を、指定された数字で上書きします。 同様にして、 gecos dir shell フィールドにテキストが含まれている場合、Hesiod や NIS を介して取り込まれた情報をそのテキストで上書きします。 いくつかのシステムでは、 passwd フィールドも上書きできます。  

索引

関連ファイル

/etc/passwd
パスワードを除いた ASCII パスワードファイル
/etc/pwd.db
パスワードを除いた db(3) 形式のパスワードデータベース
/etc/master.passwd
パスワードの入った ASCII パスワードファイル
/etc/spwd.db
パスワードの入った db(3) 形式のパスワードデータベース

 

索引

関連項目

chpass(1), login(1), passwd(1), crypt(3), getpwent(3), login.conf5, netgroup(5), adduser(8), pw(8), pwd_mkdb8, vipw(8), yp(8)

"Managing NFS and NIS" (O'Reilly & Associates)  

索引

バグ

ユーザ情報は他のどこかに入れるべき (そしていつかは入れる) でしょう。

ファイル中で `compat' の排除を取り込みの後に行うことは、予期しない結果をもたらすでしょう。  

索引

互換性

パスワードファイル形式は BSD 4.3 以降で変更されました。 以下の awk スクリプトは、古いスタイルの パスワードファイルを新しいスタイルのパスワードファイルに 変換するのに利用できます。 ``class'' ``change'' ``expire'' フィールドが追加されましたが、デフォルトでは無効になっています。 現在 class は実装されていませんが、change と expire は実装されています。 これらを設定するには、基準時点から今日までの秒数に、 好きなだけオフセットを秒数にして加えたものを使用してください。
BEGIN { FS = ":"}
{ print $1 ":" $2 ":" $3 ":" $4 "::0:0:" $5 ":" $6 ":" $7 }
 

索引

歴史

ファイルは AT&T System v6 で登場しました。

NIS ファイル形式は、SunOS ではじめて登場しました。

Hesiod サポートは、 Fx 4.1 ではじめて登場しました。 これは Nx プロジェクトから取り込まれました。 こちらでは、 Nx 1.4 ではじめて登場しました。


 

索引

Index

名称
解説
HESIOD サポート
NIS サポート
COMPAT サポート
関連ファイル
関連項目
バグ
互換性
歴史

jman



Time: 07:07:29 GMT, January 12, 2009