SHADOW(3)

名前
shadow - 暗号化されたパスワードファイル用ルーチン

書式
#include <shadow.h>

struct spwd *getspent();

struct spwd *getspnam(char *name);

void setspent();

void endspent();

struct spwd *fgetspent(FILE *fp);

struct spwd *sgetspent(char *cp);

int putspent(struct spwd *p, FILE *fp);

int lckpwdf();

int ulckpwdf();

説明
shadow はshadowパスワードファイル/etc/shadowの内容を操作するルーチンである。

struct spwd {
    char    *sp_namp; /* ユーザのログイン名 */
    char    *sp_pwdp; /* 暗号化されたパスワード */
    long    sp_lstchg; /* 最終パスワード変更日時 */
    int    sp_min; /* パスワード変更不能日数 */
    int    sp_max; /* パスワード変更要求迄の日数 */
    int    sp_warn; /* パスワード期限満了警告日数 */
    int    sp_inact; /* アカウント無効までの日数 */
    int    sp_expire; /* アカウント期限満了の日付 */
    int    sp_flag; /* 将来の使用に予約 */
}

各欄の意味は

sp_namp - ヌル終端のユーザ名へのポインタ
sp_pwdp - ヌル終端のパスワードへのポインタ
sp_lstchg - 1970年1月1日からパスワード最終変更日時迄の日数
sp_min - パスワード変更が出来る様になるまでの日数
sp_max - パスワードを変更しなくても良い日数
sp_warn - パスワードが無効となるまでにユーザにパスワードが 無効となりかかっているとの警告を出す日数
sp_inact - パスワードが無効となってからアカウントが不能となり 使用できなくなるまでの日数
sp_expire - 1970年1月1からアカウント使用不能となる迄の日数
sp_flag - 将来の使用に予約

説明
getspent, getspname, fgetspent, 及び sgetspent は各々struct spwdへのポインタを返す。 getspentはファイルから次のエントリを、fgetspentは 指定されたストリームから次のエントリを返す。 この際、ファイルは正しい書式である仮定している。 sgetspentは入力として与えられた文字列を用いてstruct spwd へのポインタを返す。 getspnamはファイル中の現在の位置からnameに符合するエントリ を探す。

setspent及びendspentはshadowしたパスワードファイルへの アクセスを夫々開始及び終了するために用いることが出来る。

/etc/shadowファイルに対する排他的なアクセスを保証するために、 lckpwdf及びulckpwdfルーチンを用いなくてはならない。 lckpwdfはpw_lockを用いて最大15秒間ロックをしようとする。 そして、最初の15秒の残りを用いて二度目のロックをしようとし続ける。 全部で15秒間の間にいずれかの試みが失敗した場合は、lckpwdfは-1を返す。 いずれのロックも成功した場合は0が返される。

返り値
これらのルーチンは、エントリが残っていない場合又は処理の過程で エラーが発生した場合にNULLを返す。 返り値がintであるルーチンは、成功時には0を、失敗時には-1を返す。

警告
shadowされたパスワードファイルへのアクセスは制限されているので、 これらのルーチンはスーパーユーザのみ用いることが出来る。

ファイル
/etc/shadow - 暗号化されたユーザパスワード

関連項目
getpwent(3), shadow(5)

著者
Julianne Frances Haugh (jockgrrl@ix.netcom.com)