diff options
Diffstat (limited to 'documentation/manual-pages/ja/man3/getpwent.3')
-rw-r--r-- | documentation/manual-pages/ja/man3/getpwent.3 | 222 |
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 +は、呼び出し結果を内部の静的オブジェクトに残し、 +そのオブジェクトを指すポインタを返します。その後、 +同じ関数を呼び出すと、同じオブジェクトを変更していきます。 |