スポンサーリンク

PWD_MKDB(8) FreeBSD システム管理者マニュアル PWD_MKDB(8)

名称

pwd_mkdb − パスワードデータベースを構築する

書式

pwd_mkdb [−C] [−N] [−p] [−i] [−d directory] [−s cachesize] [−u username] file

解説

pwd_mkdb ユーティリティは、指定されたファイルから db(3) スタイルの、セ キュリティのしっかりしたデータベースとそうでないデータベースの 2 つを構築 します。そして、これらのデータベースは、それぞれ /etc/spwd.db/etc/pwd.db にインストールされます。このファイルは、 /etc/master.passwd にインストールされます。このファイルは正しいフォーマットでなければなりま せん (passwd(5) を参照)。このシステムで使われるフォーマットは、旧来のバー ジョン 7 スタイルのフォーマットとは異なるので注意を要します。

オプションは以下の通りです。

       −C

パスワードファイルが正しいフォーマットかどうかをチェックします。ど のファイルも変更、追加、削除を行ないません。

−N
ファイルに対するロックを取得できない場合にはエラー状態で終了するよ うに、 pwd_mkdb に指示します。デフォルトでは、ソースファイルに対す るロックを、ブロックして待ちます。データベースの再構築中、このロッ クは保持されます。

−p
バージョン 7 スタイルのパスワードファイルを作成し、 /etc/passwd に インストールします。

−i
master.passwd
ファイルのロックの失敗を無視します。競合が起き得ない ような、リリースの過程で NFS 越しにパスワードファイルを構築する場合 に、このオプションは使用されます。ロックを無視するために −d オプ ションでデフォルトでないディレクトリも指定しなければなりません。こ のオプションのその他の利用はできる限り控えて下さい。

−d directory
/etc
の代わりに、指定された先のディレクトリにデータベースを保存しま す。

−u username
指定したユーザのレコードだけ更新します。単一ユーザに対してのみ作用 するユーティリティは、このオプションを使用し、データベース全体を再 構築するオーバヘッドを避けることが出来ます。

−s cachesize
ハッシングライブラリが使用するメモリキャッシュの大きさを、メガバイ ト単位で指定します。ユーザ数が多いシステムでキャッシュを小さくする と、データベースファイルの再構築に耐えがたいほどの長時間を要しま す、おおざっぱな目安では、 pwd_mkdb の使用メモリ量はここで指定した 大きさの 2 倍をちょっと越えたものになります。デフォルト値は 2 メガ バイトです。

2 つのデータベースの違いは、安全なバージョンでは、ユーザのパスワードが暗 号化されて入っており、安全でないバージョンでは、パスワードが ‘‘*’’ となっ ていることです。

このデータベースは、 C ライブラリパスワードルーチンに使われます (getpwent(3) を参照)。

pwd_mkdb ユーティリティは成功したときは 0 を返し、失敗したときは 0 以外を 返します。

環境変数

PW_SCAN_BIG_IDS 環境変数が設定されると、大きなユーザ ID およびグループ ID に対して通常生成される警告メッセージを、 pwd_mkdb は抑制します。 ID 値を 仮定するプログラムでこのような ID を使用すると、深刻な問題の原因となりま す。

関連ファイル

       /etc/pwd.db

セキュリティのないパスワードデータベー スファイル
/etc/pwd.db.tmp
一時ファイル。
/etc/spwd.db
セキュリティのあるパスワードデータベー スファイル。
/etc/spwd.db.tmp
一時ファイル。
/etc/master.passwd
現在のパスワードファイル。
/etc/passwd
バージョン 7 フォーマットのパスワード ファイル。

バグ

パスワードファイルの不可分な更新が必要なので、 pwd_mkdb は、インストール に rename(2) を使います。しかし、コマンドラインで指定されたファイルが /etc ディレクトリと同じファイルシステム上に存在しなければなりません。

複数の人が、 pwd_mkdb を同時に異なるパスワードファイルに対して走らせる と、明らかにレース (race; 競合) になってしまいます。 pwd_mkdb のフロント エンドである chpass(1), passwd(1), vipw(8) では、この問題を避けるために必 要なロック操作を行います。

互換性

以前のバージョンのシステムは、 pwd_mkdb 同様のプログラムである mkpasswd(8) を持っており、それはパスワードファイルに対して dbm(3) スタイ ルのデータベースを構築しましたが、これをインストールするために呼ぶプログ ラムに依存していました。このプログラムは、以前のプログラムのユーザが機能 の変化で驚かないように名前が変えられました。

関連項目

chpass(1), passwd(1), db(3), getpwent(3), passwd(5), vipw(8)

FreeBSD 10.0 June 6, 1993 FreeBSD 10.0

スポンサーリンク