
:mod:`spwd` --- シャドウパスワードデータベース
==============================================

.. module:: spwd
   :platform: Unix
   :synopsis: シャドウパスワードデータベース(getspnam() など


.. versionadded:: 2.5

このモジュールは Unix のシャドウパスワードデータベースへのアクセスを提供します。
様々な Unix 環境で利用できます。

シャドウパスワードデータベースへアクセスできる権限が必要(大抵の場合 root である必要があります)です。

シャドウパスワードデータベースのエントリはタプル状のオプジェクトで提供され、その属性は ``spwd``
構造のメンバーに対応しています（以下を参照してください。 ``<shadow.h>を参照``):

+-------+---------------+----------------------------------------------------------+
| Index | Attribute     | Meaning                                                  |
+=======+===============+==========================================================+
| 0     | ``sp_nam``    | ログイン名                                               |
+-------+---------------+----------------------------------------------------------+
| 1     | ``sp_pwd``    | 暗号化されたパスワード                                   |
+-------+---------------+----------------------------------------------------------+
| 2     | ``sp_lstchg`` | 最終更新日                                               |
+-------+---------------+----------------------------------------------------------+
| 3     | ``sp_min``    | パスワード変更が出来るようになるまでの最小日数           |
+-------+---------------+----------------------------------------------------------+
| 4     | ``sp_max``    | パスワードを変更しなくても良い最大日数                   |
+-------+---------------+----------------------------------------------------------+
| 5     | ``sp_warn``   | パスワードが期限切れになる前に、                         |
|       |               | 期限切れが近づいている旨の警告をユーザに出しはじめる日数 |
+-------+---------------+----------------------------------------------------------+
| 6     | ``sp_inact``  | パスワードが期限切れになってから、                       |
|       |               | アカウントがinactiveとなり使用できなくなるまでの日数     |
+-------+---------------+----------------------------------------------------------+
| 7     | ``sp_expire`` | 1970-01-01からアカウントが使用できなくなるまでの日数     |
+-------+---------------+----------------------------------------------------------+
| 8     | ``sp_flag``   | 将来のために予約                                         |
+-------+---------------+----------------------------------------------------------+

*sp_nam* と *sp_pwd* は文字列で、他は全て整数です。

エントリが見つからなかった時は :exc:`KeyError` が起きます。

このモジュールでは以下を定義しています:


.. function:: getspnam(name)

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


.. function:: getspall()

   利用可能なシャドウパスワードデータベースの全エントリを任意の順番で返します。


.. seealso::

   :mod:`grp` モジュール
      このモジュールに似たグループデータベースへのインタフェース

   :mod:`pwd` モジュール
      このモジュールに似た通常のパスワードデータベースへのインタフェース

