aboutsummaryrefslogtreecommitdiff
path: root/documentation/manual-pages/ja/man3/getpwent.3
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/manual-pages/ja/man3/getpwent.3')
-rw-r--r--documentation/manual-pages/ja/man3/getpwent.3222
1 files changed, 222 insertions, 0 deletions
diff --git a/documentation/manual-pages/ja/man3/getpwent.3 b/documentation/manual-pages/ja/man3/getpwent.3
new file mode 100644
index 0000000000..67bbb6e1cd
--- /dev/null
+++ b/documentation/manual-pages/ja/man3/getpwent.3
@@ -0,0 +1,222 @@
+.\" Copyright (c) 1988, 1991, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the University of
+.\" California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" From: @(#)getpwent.3 8.2 (Berkeley) 12/11/93
+.\" %FreeBSD: src/lib/libc/gen/getpwent.3,v 1.11.2.4 2001/12/14 18:33:51 ru Exp %
+.\" $FreeBSD$
+.\"
+.Dd September 20, 1994
+.Dt GETPWENT 3
+.Os
+.Sh 名称
+.Nm getpwent ,
+.Nm getpwnam ,
+.Nm getpwuid ,
+.Nm setpassent ,
+.Nm setpwent ,
+.Nm endpwent
+.Nd パスワードデータベースを操作
+.Sh ライブラリ
+.Lb libc
+.Sh 書式
+.In sys/types.h
+.In pwd.h
+.Ft struct passwd *
+.Fn getpwent void
+.Ft struct passwd *
+.Fn getpwnam "const char *login"
+.Ft struct passwd *
+.Fn getpwuid "uid_t uid"
+.Ft int
+.Fn setpassent "int stayopen"
+.Ft void
+.Fn setpwent void
+.Ft void
+.Fn endpwent void
+.Sh 解説
+これらの関数は、
+.Xr passwd 5
+に記述されたパスワードデータベースファイルを
+操作します。データベースの各エントリは、インクルードファイル
+.Aq Pa pwd.h
+にある構造体
+.Ar passwd
+で定義されます。次の通りです。
+.Bd -literal -offset indent
+struct passwd {
+ char *pw_name; /* ユーザ名 */
+ char *pw_passwd; /* 暗号化されたパスワード */
+ uid_t pw_uid; /* ユーザ uid */
+ gid_t pw_gid; /* ユーザ gid */
+ time_t pw_change; /* パスワードの変更時刻 */
+ char *pw_class; /* ユーザアクセスクラス */
+ char *pw_gecos; /* ハネウエルログイン情報 */
+ char *pw_dir; /* ホームディレクトリ */
+ char *pw_shell; /* デフォルトのシェル */
+ time_t pw_expire; /* アカウント有効期限 */
+ int pw_fields; /* 内部フィールド: 充てんフィールド */
+};
+.Ed
+.Pp
+関数
+.Fn getpwnam
+は与えられたログイン名を、
+.Fn getpwuid
+は与えられたユーザ ID を
+それぞれパスワードデータベースで検索し、常に最初に遭遇した
+エントリを返します。
+.Pp
+.Fn getpwent
+関数はパスワードデータベースを順次読み込みます。ユーザの完全な
+リストを処理したいプログラム向きです。
+.Pp
+.Fn setpassent
+関数は
+2 つの目的を果たすものです。まず
+.Fn getpwent
+関数がデータベースの最初へ「巻き戻す (rewind)」
+ようにします。さらに
+.Fa stayopen
+が 0
+でなければ、ファイル記述子をオープンしたままにします。
+これにより、これらのルーチンに対するその後のアクセスすべてが
+極めて高速化されます
+(ただし
+.Fn getpwent
+の場合、デフォルトでファイル記述子をクローズしないので
+後者の機能は不要です)。
+.Pp
+長時間実行されているプログラムでファイル記述子をオープンした
+ままにしておくのは危険です。なぜなら、プログラムが実行されて
+いる間にデータベースが更新されると、オープンしたままにしている
+データベースは古い物になってしまうからです。
+.Pp
+.Fn setpwent
+関数は、引数を 0 にした
+.Fn setpassent
+と同じです。
+.Pp
+.Fn endpwent
+関数は、オープンしているファイルをすべてクローズします。
+.Pp
+これらのルーチンは、パスワードファイルを
+「隠す (shadow)」目的で
+書かれました。たとえば、暗号化パスワードにアクセスできる
+プログラムを限定できるようにです。これらのルーチンを
+呼び出すプロセスの有効ユーザ ID が 0 ならば暗号化パスワードを返し、
+その他の場合は戻り値である構造体のパスワードフィールドは
+ストリング
+.Ql *
+を指すようになります。
+.Sh YP/NIS の相互作用
+.Xr yp 4
+パスワード
+データベースが使用可能な場合、ローカルのデータベースに
+要求されたパスワードエントリが見つからないと、
+.Fn getpwnam
+および
+.Fn getpwuid
+関数はそれぞれ、
+.Dq Li passwd.byname
+および
+.Dq Li passwd.byuid
+YP マップを使用します。
+.Xr passwd 5
+で記述されているようにマップ全体が使用可能である場合は、
+.Fn getpwent
+関数は
+YP マップ
+.Dq Li passwd.byname
+を一通り読みます。
+.Sh 戻り値
+関数
+.Fn getpwent ,
+.Fn getpwnam
+および
+.Fn getpwuid
+は、いずれも成功すると、
+passwd 構造体への有効なポインタを返します。
+ファイルの終端に到達するか、もしくはエラーが発生した場合は
+ヌルポインタを返します。
+.Fn setpassent
+関数は、失敗した場合は 0 を、成功した場合は
+1 を返します。
+.Fn endpwent
+および
+.Fn setpwent
+関数の戻り値はありません。
+.Sh 関連ファイル
+.Bl -tag -width /etc/master.passwd -compact
+.It Pa /etc/pwd.db
+安全ではないパスワードデータベースファイル
+.It Pa /etc/spwd.db
+安全なパスワードデータベースファイル
+.It Pa /etc/master.passwd
+現在のパスワードファイル
+.It Pa /etc/passwd
+Version 7
+形式のパスワードファイル
+.El
+.Sh 関連項目
+.Xr getlogin 2 ,
+.Xr getgrent 3 ,
+.Xr yp 4 ,
+.Xr passwd 5 ,
+.Xr pwd_mkdb 8 ,
+.Xr vipw 8
+.Sh 歴史
+.Fn getpwent ,
+.Fn getpwnam ,
+.Fn getpwuid ,
+.Fn setpwent
+および
+.Fn endpwent
+関数は、
+.At v7
+ではじめて登場しました。
+.Fn setpassent
+関数は
+.Bx 4.3 Reno
+で登場しました。
+.Sh 互換性
+歴史的な理由で存在していた、
+代替パスワードデータベースの規格を許した関数
+.Xr setpwfile 3
+は非推奨になっており、もう使用できません。
+.Sh バグ
+関数
+.Fn getpwent ,
+.Fn getpwnam
+および
+.Fn getpwuid
+は、呼び出し結果を内部の静的オブジェクトに残し、
+そのオブジェクトを指すポインタを返します。その後、
+同じ関数を呼び出すと、同じオブジェクトを変更していきます。