| SHADOW(3) | Library Functions Manual | 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 の内容を操作するルーチンである。 #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 ルーチンを用いる。 lckpwdf は pw_lock を用いて最大 15 秒間ロックを取得しようとする。 そして最初の 15 秒の残りの間、 spw_lock によって二度目のロックをしようと試み続ける。 計 15 秒間の間にいずれかの試みが失敗した場合は、 lckpwdf は -1 を返す。 いずれのロックも成功した場合は 0 が返される。