1 .\" Copyright (c) 2003 Andries Brouwer (aeb@cwi.nl) and
2 .\" Walter Harms (walter.harms@informatik.uni-oldenburg.de)
4 .\" Distributed under GPL
6 .\" Japanese Version Copyright (c) 2004 Yuichi SATO
7 .\" all rights reserved.
8 .\" Translated 2004-08-20, Yuichi SATO <ysato444@yahoo.co.jp>
10 .TH GETSPNAM 3 2010-02-25 "GNU" "Linux Programmer's Manual"
12 getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,fgetspent, fgetspent_r, sgetspent, sgetspent_r, putspent, lckpwdf, ulckpwdf \- shadow パスワードファイルのエントリを取得する
15 /* 一般的な shadow パスワードファイル API */
17 .B #include <shadow.h>
19 .BI "struct spwd *getspnam(const char *" name );
21 .B struct spwd *getspent(void);
23 .B void setspent(void);
25 .B void endspent(void);
27 .BI "struct spwd *fgetspent(FILE *" fp );
29 .BI "struct spwd *sgetspent(const char *" s );
31 .BI "int putspent(struct spwd *" p ", FILE *" fp );
35 .B int ulckpwdf(void);
39 .B #include <shadow.h>
41 .BI "int getspent_r(struct spwd *" spbuf ,
43 .BI " char *" buf ", size_t " buflen ", struct spwd **" spbufp );
45 .BI "int getspnam_r(const char *" name ", struct spwd *" spbuf ,
47 .BI " char *" buf ", size_t " buflen ", struct spwd **" spbufp );
49 .BI "int fgetspent_r(FILE *" fp ", struct spwd *" spbuf ,
51 .BI " char *" buf ", size_t " buflen ", struct spwd **" spbufp );
53 .BI "int sgetspent_r(const char *" s ", struct spwd *" spbuf ,
55 .BI " char *" buf ", size_t " buflen ", struct spwd **" spbufp );
60 .RB ( feature_test_macros (7)
70 _BSD_SOURCE || _SVID_SOURCE
74 昔は暗号化されたパスワードをパスワードファイルに
75 見えるように公開しておいても安全だと考えられていた。
76 Julianne Frances Haugh は shadow パスワード・スイートを実装した。
77 これは暗号化されたパスワードを、root のみが読むことができる
78 shadow パスワード・データベース (例えば、
79 ローカルの shadow パスワードファイル
84 以下で説明する関数は、伝統的なパスワード・データベースに対する
90 .\" FIXME 以下を一時的にコメントアウトした。
91 .\" PAM と nsswitch.conf の関係については、ユーザ、グループ、shadow
92 .\" パスワードの関数についてのページから参照されるどこかにはっきりと
96 .\" この shadow パスワードの設定は
97 .\" PAM (pluggable authentication modules) で取り替えることができる。
98 .\" 現在のところ、どの情報源を使用するかは
99 .\" .I /etc/nsswitch.conf
105 にマッチする shadow パスワード・データベースのエントリを
106 要素毎に分解し、各要素を格納した構造体へのポインタを返す。
109 関数は shadow パスワード・データベースにおける次のエントリへのポインタを返す。
116 .\" 最初に getspent() を呼び出す前に、
117 .\" setspent() を呼び出さなければならないシステムもある。
125 で暗黙のうちにオープンされるストリームではなく、与えられたストリームを使う。
138 の内容を shadow パスワードファイル形式のテキスト行でストリーム
142 値が NULL の文字列エントリと値が \-1 の数値エントリが
146 関数は、 shadow パスワード・データベースを
147 多重同時アクセスから守るためのものである。
150 失敗した場合 (15 秒以内にロックが取得できなかった場合) は \-1 を返す。
153 shadow パスワードファイルへの直接アクセスから
156 を使うプログラムだけがロックを通知できる。
158 これらの関数はオリジナルの shadow API を構成していた関数であり、
161 .\" SUN には sgetspent() がない。
163 パスワード・データベースに対するリエントラント版と同じように、
164 glibc には shadow パスワードファイルに対してリエントラント版がある。
168 と似ているが、取得した shadow パスワード構造体を
171 shadow パスワード構造体は文字列群へのポインタを含み、
178 には (成功した場合は) 結果へのポインタが格納され、
179 (エントリが見つからなかった場合またはエラーが起こった場合は)
186 はそれぞれリエントラントでないバージョンと同様の機能を持つ。
188 glibc でないシステムにもこれらと同じ名前の関数があるが、
190 .\" SUN には sgetspent_r() がない。
192 shadow パスワード構造体は \fI<shadow.h>\fP で以下のように定義されている:
197 char *sp_namp; /* ログイン名 */
198 char *sp_pwdp; /* 暗号化されたパスワード */
199 long sp_lstchg; /* 最終更新日
200 (1970-01-01 00:00:00 +0000 (UTC)) からの日数) */
201 long sp_min; /* 変更が出来るようになるまでの最短日数 */
202 long sp_max; /* 変更をしなくてもよい最長日数 */
203 long sp_warn; /* パスワードが期限切れになる前に
205 long sp_inact; /* パスワードが期限切れになってから
207 long sp_expire; /* アカウントが無効になる日付
208 (1970-01-01 00:00:00 +0000 (UTC)) からの日数) */
209 unsigned long sp_flag; /* 予約フィールド */
214 ポインタを返す関数は、これ以上エントリがない場合や
215 処理中にエラーが発生した場合 NULL を返す。
216 \fIint\fP を返り値として持つ関数は、
217 成功した場合 0 を返し、失敗した場合 \-1 を返す。
219 リエントラント版でない関数では、返り値が静的な領域を指しており、
220 引き続いてこれらの関数を呼び出した場合に上書きされる可能性がある。
222 リエントラント版の関数は、成功した場合に 0 を返す。
231 ローカルの shadow パスワード・データベースファイル
241 これは shadow パスワードファイルのパス名である。
243 shadow パスワード・データベースと関連 API は POSIX.1-2001
244 には記載されていない。しかしながら、多くの他のシステムでも