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();
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 - 将来使うときに向けて予約
setspent は shadow パスワードファイルへのアクセスを開始するために、 endspent は終了するために用いられる。
/etc/shadow ファイルに対する排他的なアクセスを保証したい場合には、 lckpwdf ルーチンと ulckpwdf ルーチンを用いる。 lckpwdf は pw_lock を用いて最大 15 秒間ロックを取得しようとする。 そして最初の 15 秒の残りの間、 spw_lock によって二度目のロックをしようと試み続ける。 計 15 秒間の間にいずれかの試みが失敗した場合は、 lckpwdf は -1 を返す。 いずれのロックも成功した場合は 0 が返される。
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]