
:mod:`pwd` --- パスワードデータベースへのアクセスを提供する
===========================================================

.. module:: pwd
   :platform: Unix
   :synopsis: パスワードデータベースへのアクセスを提供する (getpwnam() など)。


このモジュールは Unix のユーザアカウントとパスワードのデータベースへのアクセスを提供します。
全ての Unix 系 OS で利用できます。

パスワードデータベースの各エントリはタプルのようなオブジェクトで提供され、
それぞれの属性は ``passwd`` 構造体のメンバに対応しています(下の属性欄については、
``<pwd.h>`` を見てください)。

+--------------+---------------+-----------------------------------+
| インデックス | 属性          | 意味                              |
+==============+===============+===================================+
| 0            | ``pw_name``   | ログイン名                        |
+--------------+---------------+-----------------------------------+
| 1            | ``pw_passwd`` | 暗号化されたパスワード(optional)) |
+--------------+---------------+-----------------------------------+
| 2            | ``pw_uid``    | ユーザID(UID)                     |
+--------------+---------------+-----------------------------------+
| 3            | ``pw_gid``    | グループID(GID)                   |
+--------------+---------------+-----------------------------------+
| 4            | ``pw_gecos``  | 実名またはコメント                |
+--------------+---------------+-----------------------------------+
| 5            | ``pw_dir``    | ホームディレクトリ                |
+--------------+---------------+-----------------------------------+
| 6            | ``pw_shell``  | シェル                            |
+--------------+---------------+-----------------------------------+

UIDとGIDは整数で、それ以外は全て文字列です。
検索したエントリが見つからないと :exc:`KeyError` が発生します。

.. note::

   .. index:: module: crypt

   伝統的なUnixでは、 ``pw_passwd`` フィールドはDES由来のアルゴリズムで暗号化された\
   パスワード(:mod:`crypt` モジュールをごらんください)が含まれています。
   しかし、近代的なUNIX系OSでは *シャドウパスワード* とよばれる仕組みを利用しています。
   この場合には *pw_passwd* フィールドにはアスタリスク(``'*'``)か、
   ``'x'`` という一文字だけが含まれており、暗号化されたパスワードは、一般には見えない
   :file:`/etc/shadow` というファイルに入っています。
   *pw_passwd* フィールドに有用な値が入っているかはシステムに依存します。
   利用可能なら、暗号化されたパスワードへのアクセスが必要なときには
   :mod:`spwd` モジュールを利用してください。

このモジュールでは以下のものが定義されています:


.. function:: getpwuid(uid)

   与えられたUIDに対応するパスワードデータベースのエントリを返します。


.. function:: getpwnam(name)

   与えられたユーザ名に対応するパスワードデータベースのエントリを返します。


.. function:: getpwall()

   パスワードデータベースの全てのエントリを、任意の順番で並べたリストを返します。


.. seealso::

   :mod:`grp` モジュール
      このモジュールに似た、グループデータベースへのアクセスを提供するモジュール。

   :mod:`spwd` モジュール
      このモジュールに似た、シャドウパスワードデータベースへのアクセスを提供するモジュール。

