Manpages

名 前

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 の 内 容 を 操 作 す る ル ー チ ン で あ る 。 #include フ ァ イ ル に 与 え ら れ て い る 構 造 体 は 以 下 の 通 り 。

struct spwd {

char

*sp_namp; /* user login name */

char

*sp_pwdp; /* encrypted password */

long

sp_lstchg; /* last password change */

int

sp_min; /* days until change allowed. */

int

sp_max; /* days before change required */

int

sp_warn; /* days warning for expiration */

int

sp_inact; /* days before account inactive */

int

sp_expire; /* date when account expires */

int

sp_flag; /* reserved for future use */ } 各 フ ィ ー ル ド の 意 味 は :

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 は shadow パ ス ワ ー ド フ ァ イ ル へ の ア ク セ ス を 開 始 す る た め に 、 endspent は 終 了 す る た め に 用 い ら れ る 。

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

返 り 値

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

警 告

shadowさ れ た パ ス ワ ー ド フ ァ イ ル へ の ア ク セ ス は 制 限 さ れ て い る の で 、 こ れ ら の ル ー チ ン は ス ー パ ー ユ ー ザ だ け が 利 用 で き る 。

フ ァ イ ル

/etc/shadow − 暗 号 化 さ れ た ユ ー ザ パ ス ワ ー ド

関 連 項 目

getpwent(3), shadow(5)

著 者

Julianne Frances Haugh (jockgrrl [AT] ix.com)