pwd_mkdb(8) FreeBSD 一般コマンドマニュアル

pwd_mkdb

前のページ 上に戻る 次のページ

pwd_mkdb




解説

     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 に
           インストールします。

     -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 値を


バグ

     パスワードファイルのアトミック (atomic; 不可分) な更新が必要なので、
     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 4.4                      June 6, 1993                      FreeBSD 4.4

ABELNET VPSサービス