.\" Updated 2013-03-25, Akihiro MOTOKI <amotoki@gmail.com>
.\" Updated 2013-07-17, Akihiro MOTOKI <amotoki@gmail.com>
.\"
-.TH GETSPNAM 3 2013\-04\-19 GNU "Linux Programmer's Manual"
+.TH GETSPNAM 3 2015\-01\-22 GNU "Linux Programmer's Manual"
.SH 名前
getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,fgetspent,
fgetspent_r, sgetspent, sgetspent_r, putspent, lckpwdf, ulckpwdf \- shadow
-パスワードファイルのエントリを取得する
+ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
.nf
/* 一般的な shadow パスワードファイル API */
.sp
\fBvoid endspent(void);\fP
.sp
-\fBstruct spwd *fgetspent(FILE *\fP\fIfp\fP\fB);\fP
+\fBstruct spwd *fgetspent(FILE *\fP\fIstream\fP\fB);\fP
.sp
\fBstruct spwd *sgetspent(const char *\fP\fIs\fP\fB);\fP
.sp
-\fBint putspent(struct spwd *\fP\fIp\fP\fB, FILE *\fP\fIfp\fP\fB);\fP
+\fBint putspent(const struct spwd *\fP\fIp\fP\fB, FILE *\fP\fIstream\fP\fB);\fP
.sp
\fBint lckpwdf(void);\fP
.sp
.br
\fB char *\fP\fIbuf\fP\fB, size_t \fP\fIbuflen\fP\fB, struct spwd **\fP\fIspbufp\fP\fB);\fP
.sp
-\fBint fgetspent_r(FILE *\fP\fIfp\fP\fB, struct spwd *\fP\fIspbuf\fP\fB,\fP
+\fBint fgetspent_r(FILE *\fP\fIstream\fP\fB, struct spwd *\fP\fIspbuf\fP\fB,\fP
.br
\fB char *\fP\fIbuf\fP\fB, size_t \fP\fIbuflen\fP\fB, struct spwd **\fP\fIspbufp\fP\fB);\fP
.sp
.ad b
.SH 説明
昔は暗号化されたパスワードをパスワードファイルに 見えるように公開しておいても安全だと考えられていた。 Julianne Frances Haugh は
-shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\82¹ã\82¤ã\83¼ã\83\88ã\82\92å®\9fè£\85ã\81\97ã\81\9fã\80\82 ã\81\93ã\82\8cã\81¯æ\9a\97å\8f·å\8c\96ã\81\95ã\82\8cã\81\9fã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82\92ã\80\81root ã\81®ã\81¿ã\81\8cèªã\82\80ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8b shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»データベース
+shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82¹ã\82¤ã\83¼ã\83\88ã\82\92å®\9fè£\85ã\81\97ã\81\9fã\80\82 ã\81\93ã\82\8cã\81¯æ\9a\97å\8f·å\8c\96ã\81\95ã\82\8cã\81\9fã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82\92ã\80\81root ã\81®ã\81¿ã\81\8cèªã\82\80ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8b shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89データベース
(例えば、 ローカルの shadow パスワードファイル \fI/etc/shadow\fP, NIS, LDAP) に保持する。
.LP
-.\" FIXME I've commented out the following for the
+.\" FIXME . I've commented out the following for the
.\" moment. The relationship between PAM and nsswitch.conf needs
.\" to be clearly documented in one place, which is pointed to by
.\" the pages for the user, group, and shadow password functions.
.\" (pluggable authentication modules), and the file
.\" .I /etc/nsswitch.conf
.\" now describes the sources to be used.
-以ä¸\8bã\81§èª¬æ\98\8eã\81\99ã\82\8bé\96¢æ\95°ã\81¯ã\80\81ä¼\9dçµ±ç\9a\84ã\81ªã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«å¯¾ã\81\99ã\82\8b é\96¢æ\95°ã\81«ä¼¼ã\81¦ã\81\84ã\82\8b (ä¾\8bã\81\88ã\81° \fBgetpwnam\fP(3) ã\82\84
-\fBgetpwent\fP(3) を参照)。
+以ä¸\8bã\81§èª¬æ\98\8eã\81\99ã\82\8bé\96¢æ\95°ã\81¯ã\80\81ä¼\9dçµ±ç\9a\84ã\81ªã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«å¯¾ã\81\99ã\82\8b é\96¢æ\95°ã\81«ä¼¼ã\81¦ã\81\84ã\82\8b (ä¾\8bã\81\88ã\81° \fBgetpwnam\fP(3) ã\82\84 \fBgetpwent\fP(3)
+を参照)。
.LP
-\fBgetspnam\fP() 関数は、ユーザ名 \fIname\fP にマッチする shadow パスワード・データベースのエントリを
-要素毎に分解し、各要素を格納した構造体へのポインタを返す。
+\fBgetspnam\fP() 関数は、ユーザー名 \fIname\fP にマッチする shadow パスワードデータベースのエントリーを
+è¦\81ç´ æ¯\8eã\81«å\88\86解ã\81\97ã\80\81å\90\84è¦\81ç´ ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.LP
.\" some systems require a call of setspent() before the first getspent()
.\" glibc does not
-\fBgetspent\fP() é\96¢æ\95°ã\81¯ shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«ã\81\8aã\81\91ã\82\8b次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す。 入力ストリームにおける位置は、
+\fBgetspent\fP() é\96¢æ\95°ã\81¯ shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«ã\81\8aã\81\91ã\82\8b次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す。 入力ストリームにおける位置は、
\fBsetspent\fP() で初期化される。 読み込みが終わった後に、 \fBendspent\fP() を呼び出すと、リソースを解放できる。
.LP
\fBfgetspent\fP() 関数は \fBgetspent\fP() に似ているが、 \fBsetspent\fP()
.LP
\fBsgetspent\fP() 関数は与えられた文字列 \fIs\fP を解析し struct \fIspwd\fP に格納する。
.LP
-\fBputspent\fP() 関数は与えられた struct \fIspwd\fP \fI*p\fP の内容を shadow
-パスワードファイル形式のテキスト行でストリーム \fIfp\fP に書き出す。 空文字列として、 値が NULL の文字列エントリと値が \-1
-の数値エントリが 書き出される。
+\fBputspent\fP() 関数は与えられた struct \fIspwd\fP \fI*p\fP の内容を shadow パスワードファイル形式のテキスト行で
+\fIstream\fP に書き出す。 空文字列として、 値が NULL の文字列エントリーと値が \-1 の数値エントリーが 書き出される。
.LP
-\fBlckpwdf\fP() é\96¢æ\95°ã\81¯ã\80\81 shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\82\92 å¤\9aé\87\8då\90\8cæ\99\82ã\82¢ã\82¯ã\82»ã\82¹ã\81\8bã\82\89å®\88ã\82\8bã\81\9fã\82\81ã\81®ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82
-この関数はロックの獲得を試み、 成功した場合は 0 を返す。 失敗した場合 (15 秒以内にロックが取得できなかった場合) は \-1 を返す。
-\fBulckpwdf\fP() 関数はロックを再び解放する。 shadow パスワードファイルへの直接アクセスから 保護する手段がない点に注意すること。
-\fBlckpwdf\fP() を使うプログラムだけがロックを通知できる。
+\fBlckpwdf\fP() é\96¢æ\95°ã\81¯ã\80\81 shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\82\92 å¤\9aé\87\8då\90\8cæ\99\82ã\82¢ã\82¯ã\82»ã\82¹ã\81\8bã\82\89å®\88ã\82\8bã\81\9fã\82\81ã\81®ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®é\96¢æ\95°ã\81¯ã\83ã\83\83ã\82¯ã\81®ç\8d²å¾\97ã\82\92試ã\81¿ã\80\81
+成功した場合は 0 を返す。 失敗した場合 (15 秒以内にロックが取得できなかった場合) は \-1 を返す。 \fBulckpwdf\fP()
+関数はロックを再び解放する。 shadow パスワードファイルへの直接アクセスから 保護する手段がない点に注意すること。 \fBlckpwdf\fP()
+を使うプログラムだけがロックを通知できる。
.LP
.\" Also in libc5
.\" SUN doesn't have sgetspent()
これらの関数はオリジナルの shadow API を構成していた関数であり、 いろいろなシステムで広く利用可能である。
.SS リエントラント版
-ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«å¯¾ã\81\99ã\82\8bã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ç\89\88ã\81¨å\90\8cã\81\98ã\82\88ã\81\86ã\81«ã\80\81 glibc ã\81«ã\81¯ shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\95ã\82¡ã\82¤ã\83«ã\81«å¯¾ã\81\97ã\81¦ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ç\89\88ã\81\8cã\81\82ã\82\8bã\80\82
+パスワードデータベースに対するリエントラント版と同じように、 glibc には shadow パスワードファイルに対してリエントラント版がある。
\fBgetspnam_r\fP() 関数は \fBgetspnam\fP() と似ているが、取得した shadow パスワード構造体を \fIspbuf\fP
-ã\81\8cæ\8c\87ã\81\99é \98å\9f\9fã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82 shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89æ§\8bé\80 ä½\93ã\81¯æ\96\87å\97å\88\97群ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92å\90«ã\81¿ã\80\81 ã\81\93ã\82\8cã\82\89ã\81®æ\96\87å\97å\88\97群ã\81¯ã\82µã\82¤ã\82º \fIbuflen\fP ã\81®ã\83\90ã\83\83ã\83\95ã\82¡
-\fIbuf\fP に格納される。 \fI*spbufp\fP には (成功した場合は) 結果へのポインタが格納され、
-(エントリが見つからなかった場合またはエラーが起こった場合は) NULL が格納される。
+ã\81\8cæ\8c\87ã\81\99é \98å\9f\9fã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82 shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89æ§\8bé\80 ä½\93ã\81¯æ\96\87å\97å\88\97群ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å\90«ã\81¿ã\80\81 ã\81\93ã\82\8cã\82\89ã\81®æ\96\87å\97å\88\97群ã\81¯ã\82µã\82¤ã\82º \fIbuflen\fP ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼
+\fIbuf\fP ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82 \fI*spbufp\fP ã\81«ã\81¯ (æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\81¯) çµ\90æ\9e\9cã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\80\81
+(ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\81¾ã\81\9fã\81¯ã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9få ´å\90\88ã\81¯) NULL ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82
.LP
関数 \fBgetspent_r\fP(), \fBfgetspent_r\fP(), \fBsgetspent_r\fP()
はそれぞれリエントラントでないバージョンと同様の機能を持つ。
long sp_min; /* 変更が出来るようになるまでの最短日数 */
long sp_max; /* 変更をしなくてもよい最長日数 */
long sp_warn; /* パスワードが期限切れになる前に
- ユーザに変更の警告を出す日数 */
+ ã\83¦ã\83¼ã\82¶ã\83¼ã\81«å¤\89æ\9b´ã\81®è¦å\91\8aã\82\92å\87ºã\81\99æ\97¥æ\95° */
long sp_inact; /* パスワードが期限切れになってから
アカウントが無効になるまでの日数 */
long sp_expire; /* アカウントが無効になる日付
.fi
.in
.SH 返り値
-ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99é\96¢æ\95°ã\81¯ã\80\81ã\81\93ã\82\8c以ä¸\8aã\82¨ã\83³ã\83\88ã\83ªがない場合や 処理中にエラーが発生した場合 NULL を返す。 \fIint\fP を返り値として持つ関数は、
+ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99é\96¢æ\95°ã\81¯ã\80\81ã\81\93ã\82\8c以ä¸\8aã\82¨ã\83³ã\83\88ã\83ªã\83¼がない場合や 処理中にエラーが発生した場合 NULL を返す。 \fIint\fP を返り値として持つ関数は、
成功した場合 0 を返し、失敗した場合、 \-1 を返し、 \fIerrno\fP にエラーの原因を示す値を設定する。
.LP
リエントラント版でない関数では、返り値が静的な領域を指しており、 引き続いてこれらの関数を呼び出した場合に上書きされる可能性がある。
呼び出し元が shadow パスワードファイルにアクセスする許可を持っていない。
.TP
\fBERANGE\fP
-与えられたバッファが小さすぎる。
+ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cå°\8fã\81\95ã\81\99ã\81\8eã\82\8bã\80\82
.SH ファイル
.TP
\fI/etc/shadow\fP
-ã\83ã\83¼ã\82«ã\83«ã\81® shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\83\95ã\82¡ã\82¤ã\83«
+ローカルの shadow パスワードデータベースファイル
.TP
\fI/etc/.pwd.lock\fP
ロックファイル
インクルードファイル \fI<paths.h>\fP は定数 \fB_PATH_SHADOW\fP を定義している。 これは shadow
パスワードファイルのパス名である。
.SH 準拠
-shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¨é\96¢é\80£ API ã\81¯ POSIX.1\-2001 ã\81«ã\81¯è¨\98è¼\89ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89ã\80\81å¤\9aã\81\8fã\81®ä»\96ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\82\82 å\90\8cæ§\98ã\81®
+shadow パスワードデータベースと関連 API は POSIX.1\-2001 には記載されていない。しかしながら、多くの他のシステムでも 同様の
API が提供されている。
.SH 関連項目
\fBgetgrnam\fP(3), \fBgetpwnam\fP(3), \fBgetpwnam_r\fP(3), \fBshadow\fP(5)
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.53 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。