OSDN Git Service

(split) LDP: Restore and add Copyrights for draft pages
[linuxjm/LDP_man-pages.git] / draft / man3 / getspnam.3
1 .\" Copyright (c) 2003 Andries Brouwer (aeb@cwi.nl) and
2 .\" Walter Harms (walter.harms@informatik.uni-oldenburg.de)
3 .\"
4 .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE)
5 .\" Distributed under GPL
6 .\" %%%LICENSE_END
7 .\"
8 .\"*******************************************************************
9 .\"
10 .\" This file was generated with po4a. Translate the source file.
11 .\"
12 .\"*******************************************************************
13 .\"
14 .\" Japanese Version Copyright (c) 2004 Yuichi SATO
15 .\"         all rights reserved.
16 .\" Translated 2004-08-20, Yuichi SATO <ysato444@yahoo.co.jp>
17 .\" Updated 2013-03-25, Akihiro MOTOKI <amotoki@gmail.com>
18 .\" Updated 2013-07-17, Akihiro MOTOKI <amotoki@gmail.com>
19 .\"
20 .TH GETSPNAM 3 2013\-04\-19 GNU "Linux Programmer's Manual"
21 .SH 名前
22 getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,fgetspent,
23 fgetspent_r, sgetspent, sgetspent_r, putspent, lckpwdf, ulckpwdf \- shadow
24 パスワードファイルのエントリを取得する
25 .SH 書式
26 .nf
27 /* 一般的な shadow パスワードファイル API */
28 .br
29 \fB#include <shadow.h>\fP
30 .sp
31 \fBstruct spwd *getspnam(const char *\fP\fIname\fP\fB);\fP
32 .sp
33 \fBstruct spwd *getspent(void);\fP
34 .sp
35 \fBvoid setspent(void);\fP
36 .sp
37 \fBvoid endspent(void);\fP
38 .sp
39 \fBstruct spwd *fgetspent(FILE *\fP\fIfp\fP\fB);\fP
40 .sp
41 \fBstruct spwd *sgetspent(const char *\fP\fIs\fP\fB);\fP
42 .sp
43 \fBint putspent(struct spwd *\fP\fIp\fP\fB, FILE *\fP\fIfp\fP\fB);\fP
44 .sp
45 \fBint lckpwdf(void);\fP
46 .sp
47 \fBint ulckpwdf(void);\fP
48 .sp
49 /* GNU 版における拡張 */
50 .br
51 \fB#include <shadow.h>\fP
52 .sp
53 \fBint getspent_r(struct spwd *\fP\fIspbuf\fP\fB,\fP
54 .br
55 \fB        char *\fP\fIbuf\fP\fB, size_t \fP\fIbuflen\fP\fB, struct spwd **\fP\fIspbufp\fP\fB);\fP
56 .sp
57 \fBint getspnam_r(const char *\fP\fIname\fP\fB, struct spwd *\fP\fIspbuf\fP\fB,\fP
58 .br
59 \fB        char *\fP\fIbuf\fP\fB, size_t \fP\fIbuflen\fP\fB, struct spwd **\fP\fIspbufp\fP\fB);\fP
60 .sp
61 \fBint fgetspent_r(FILE *\fP\fIfp\fP\fB, struct spwd *\fP\fIspbuf\fP\fB,\fP
62 .br
63 \fB        char *\fP\fIbuf\fP\fB, size_t \fP\fIbuflen\fP\fB, struct spwd **\fP\fIspbufp\fP\fB);\fP
64 .sp
65 \fBint sgetspent_r(const char *\fP\fIs\fP\fB, struct spwd *\fP\fIspbuf\fP\fB,\fP
66 .br
67 \fB        char *\fP\fIbuf\fP\fB, size_t \fP\fIbuflen\fP\fB, struct spwd **\fP\fIspbufp\fP\fB);\fP
68 .fi
69 .sp
70 .in -4n
71 glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参照):
72 .in
73 .sp
74 .ad l
75 \fBgetspent_r\fP(), \fBgetspnam_r\fP(), \fBfgetspent_r\fP(), \fBsgetspent_r\fP():
76 .RS 4
77 _BSD_SOURCE || _SVID_SOURCE
78 .RE
79 .ad b
80 .SH 説明
81 昔は暗号化されたパスワードをパスワードファイルに 見えるように公開しておいても安全だと考えられていた。 Julianne Frances Haugh は
82 shadow パスワード・スイートを実装した。 これは暗号化されたパスワードを、root のみが読むことができる shadow パスワード・データベース
83 (例えば、 ローカルの shadow パスワードファイル \fI/etc/shadow\fP, NIS, LDAP)  に保持する。
84 .LP
85 .\" FIXME I've commented out the following for the
86 .\" moment.  The relationship between PAM and nsswitch.conf needs
87 .\" to be clearly documented in one place, which is pointed to by
88 .\" the pages for the user, group, and shadow password functions.
89 .\" (Jul 2005, mtk)
90 .\"
91 .\" This shadow password setup has been superseded by PAM
92 .\" (pluggable authentication modules), and the file
93 .\" .I /etc/nsswitch.conf
94 .\" now describes the sources to be used.
95 以下で説明する関数は、伝統的なパスワード・データベースに対する 関数に似ている (例えば \fBgetpwnam\fP(3)  や
96 \fBgetpwent\fP(3)  を参照)。
97 .LP
98 \fBgetspnam\fP()  関数は、ユーザ名 \fIname\fP にマッチする shadow パスワード・データベースのエントリを
99 要素毎に分解し、各要素を格納した構造体へのポインタを返す。
100 .LP
101 .\" some systems require a call of setspent() before the first getspent()
102 .\" glibc does not
103 \fBgetspent\fP()  関数は shadow パスワード・データベースにおける次のエントリへのポインタを返す。 入力ストリームにおける位置は、
104 \fBsetspent\fP()  で初期化される。 読み込みが終わった後に、 \fBendspent\fP()  を呼び出すと、リソースを解放できる。
105 .LP
106 \fBfgetspent\fP()  関数は \fBgetspent\fP()  に似ているが、 \fBsetspent\fP()
107 で暗黙のうちにオープンされるストリームではなく、与えられたストリームを使う。
108 .LP
109 \fBsgetspent\fP()  関数は与えられた文字列 \fIs\fP を解析し struct \fIspwd\fP に格納する。
110 .LP
111 \fBputspent\fP()  関数は与えられた struct \fIspwd\fP \fI*p\fP の内容を shadow
112 パスワードファイル形式のテキスト行でストリーム \fIfp\fP に書き出す。 空文字列として、 値が NULL の文字列エントリと値が \-1
113 の数値エントリが 書き出される。
114 .LP
115 \fBlckpwdf\fP()  関数は、 shadow パスワード・データベースを 多重同時アクセスから守るためのものである。
116 この関数はロックの獲得を試み、 成功した場合は 0 を返す。 失敗した場合 (15 秒以内にロックが取得できなかった場合) は \-1 を返す。
117 \fBulckpwdf\fP()  関数はロックを再び解放する。 shadow パスワードファイルへの直接アクセスから 保護する手段がない点に注意すること。
118 \fBlckpwdf\fP()  を使うプログラムだけがロックを通知できる。
119 .LP
120 .\" Also in libc5
121 .\" SUN doesn't have sgetspent()
122 これらの関数はオリジナルの shadow API を構成していた関数であり、 いろいろなシステムで広く利用可能である。
123 .SS リエントラント版
124 パスワード・データベースに対するリエントラント版と同じように、 glibc には shadow パスワードファイルに対してリエントラント版がある。
125 \fBgetspnam_r\fP()  関数は \fBgetspnam\fP()  と似ているが、取得した shadow パスワード構造体を \fIspbuf\fP
126 が指す領域に格納する。 shadow パスワード構造体は文字列群へのポインタを含み、 これらの文字列群はサイズ \fIbuflen\fP のバッファ
127 \fIbuf\fP に格納される。 \fI*spbufp\fP には (成功した場合は) 結果へのポインタが格納され、
128 (エントリが見つからなかった場合またはエラーが起こった場合は)  NULL が格納される。
129 .LP
130 関数 \fBgetspent_r\fP(), \fBfgetspent_r\fP(), \fBsgetspent_r\fP()
131 はそれぞれリエントラントでないバージョンと同様の機能を持つ。
132 .LP
133 .\" SUN doesn't have sgetspent_r()
134 glibc でないシステムにもこれらと同じ名前の関数があるが、 プロトタイプが異なることも多い。
135 .SS 構造体
136 shadow パスワード構造体は \fI<shadow.h>\fP で以下のように定義されている:
137 .sp
138 .in +4n
139 .nf
140 struct spwd {
141     char *sp_namp;     /* ログイン名 */
142     char *sp_pwdp;     /* 暗号化されたパスワード */
143     long  sp_lstchg;   /* 最終更新日
144                           (1970\-01\-01 00:00:00 +0000 (UTC)
145                            からの日数) */
146     long  sp_min;      /* 変更が出来るようになるまでの最短日数 */
147     long  sp_max;      /* 変更をしなくてもよい最長日数 */
148     long  sp_warn;     /* パスワードが期限切れになる前に
149                           ユーザに変更の警告を出す日数 */
150     long  sp_inact;    /* パスワードが期限切れになってから
151                           アカウントが無効になるまでの日数 */
152     long  sp_expire;   /* アカウントが無効になる日付
153                           (1970\-01\-01 00:00:00 +0000 (UTC)
154                            からの日数) */
155     unsigned long sp_flag;  /* 予約フィールド */
156 };
157 .fi
158 .in
159 .SH 返り値
160 ポインタを返す関数は、これ以上エントリがない場合や 処理中にエラーが発生した場合 NULL を返す。 \fIint\fP を返り値として持つ関数は、
161 成功した場合 0 を返し、失敗した場合、 \-1 を返し、 \fIerrno\fP にエラーの原因を示す値を設定する。
162 .LP
163 リエントラント版でない関数では、返り値が静的な領域を指しており、 引き続いてこれらの関数を呼び出した場合に上書きされる可能性がある。
164 .LP
165 リエントラント版の関数は、成功した場合に 0 を返す。 エラーの場合は、エラー番号が返される。
166 .SH エラー
167 .TP 
168 \fBEACCES\fP
169 呼び出し元が shadow パスワードファイルにアクセスする許可を持っていない。
170 .TP 
171 \fBERANGE\fP
172 与えられたバッファが小さすぎる。
173 .SH ファイル
174 .TP 
175 \fI/etc/shadow\fP
176 ローカルの shadow パスワード・データベースファイル
177 .TP 
178 \fI/etc/.pwd.lock\fP
179 ロックファイル
180 .LP
181 インクルードファイル \fI<paths.h>\fP は定数 \fB_PATH_SHADOW\fP を定義している。 これは shadow
182 パスワードファイルのパス名である。
183 .SH 準拠
184 shadow パスワード・データベースと関連 API は POSIX.1\-2001 には記載されていない。しかしながら、多くの他のシステムでも 同様の
185 API が提供されている。
186 .SH 関連項目
187 \fBgetgrnam\fP(3), \fBgetpwnam\fP(3), \fBgetpwnam_r\fP(3), \fBshadow\fP(5)
188 .SH この文書について
189 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.53 の一部
190 である。プロジェクトの説明とバグ報告に関する情報は
191 http://www.kernel.org/doc/man\-pages/ に書かれている。