OSDN Git Service

Import translated manuals from JM CVS Repository.
[linuxjm/jm.git] / manual / LDP_man-pages / release / man3 / getpwnam.3
1 .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
2 .\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk
3 .\"     <mtk.manpages@gmail.com>
4 .\"
5 .\" Permission is granted to make and distribute verbatim copies of this
6 .\" manual provided the copyright notice and this permission notice are
7 .\" preserved on all copies.
8 .\"
9 .\" Permission is granted to copy and distribute modified versions of this
10 .\" manual under the conditions for verbatim copying, provided that the
11 .\" entire resulting derived work is distributed under the terms of a
12 .\" permission notice identical to this one.
13 .\"
14 .\" Since the Linux kernel and libraries are constantly changing, this
15 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
16 .\" responsibility for errors or omissions, or for damages resulting from
17 .\" the use of the information contained herein.  The author(s) may not
18 .\" have taken the same level of care in the production of this manual,
19 .\" which is licensed free of charge, as they might when working
20 .\" professionally.
21 .\"
22 .\" Formatted or processed versions of this manual, if unaccompanied by
23 .\" the source, must acknowledge the copyright and authors of this work.
24 .\"
25 .\" References consulted:
26 .\"     Linux libc source code
27 .\"     Lewine's "POSIX Programmer's Guide" (O'Reilly & Associates, 1991)
28 .\"     386BSD man pages
29 .\"
30 .\" Modified 1993-07-24 by Rik Faith (faith@cs.unc.edu)
31 .\" Modified 1996-05-27 by Martin Schulze (joey@linux.de)
32 .\" Modified 2003-11-15 by aeb
33 .\" 2008-11-07, mtk, Added an example program for getpwnam_r().
34 .\"
35 .\" Japanese Version Copyright (c) 1997 HIROFUMI Nishizuka
36 .\"     all rights reserved.
37 .\" Translated 1997-12-18, HIROFUMI Nishizuka <nishi@rpts.cl.nec.co.jp>
38 .\" Updated & Modified 2004-01-06, Yuichi SATO <ysato444@yahoo.co.jp>
39 .\" Updated & Modified 2005-09-06, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
40 .\" Updated & Modified 2005-10-08, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
41 .\" Updated 2008-12-24, Akihiro MOTOKI, LDP v3.14
42 .\"
43 .TH GETPWNAM 3  2009-03-30 "GNU" "Linux Programmer's Manual"
44 .SH Ì¾Á°
45 getpwnam, getpwnam_r, getpwuid, getpwuid_r \- ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤Î¼èÆÀ
46 .SH ½ñ¼°
47 .nf
48 .B #include <sys/types.h>
49 .B #include <pwd.h>
50 .sp
51 .BI "struct passwd *getpwnam(const char *" name );
52 .sp
53 .BI "struct passwd *getpwuid(uid_t " uid );
54 .sp
55 .BI "int getpwnam_r(const char *" name ", struct passwd *" pwd ,
56 .br
57 .BI "            char *" buf ", size_t " buflen ", struct passwd **" result );
58 .sp
59 .BI "int getpwuid_r(uid_t " uid ", struct passwd *" pwd ,
60 .br
61 .BI "            char *" buf ", size_t " buflen ", struct passwd **" result );
62 .fi
63 .sp
64 .in -4n
65 glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
66 .RB ( feature_test_macros (7)
67 »²¾È):
68 .in
69 .sp
70 .ad l
71 .BR getpwnam_r (),
72 .BR getpwuid_r ():
73 _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _BSD_SOURCE ||
74 _SVID_SOURCE || _POSIX_SOURCE
75 .ad b
76 .SH ÀâÌÀ
77 .BR getpwnam ()
78 ´Ø¿ô¤Ï¡¢¥æ¡¼¥¶Ì¾
79 .I name
80 ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥È¥ê¤ò
81 Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹
82 (¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÎã:
83 ¥í¡¼¥«¥ë¤Î¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë
84 .IR /etc/passwd ,
85 NIS, LDAP)¡£
86 .PP
87 .BR getpwuid ()
88 ´Ø¿ô¤Ï¡¢¥æ¡¼¥¶ ID
89 .I uid
90 ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥È¥ê¤ò
91 Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£
92 .PP
93 .BR getpwnam_r ()
94 ¤È
95 .BR getpwuid_r ()
96 ´Ø¿ô¤Ï (¾åµ­¤Î´Ø¿ô¤È) Æ±¤¸¾ðÊó¤ò¼èÆÀ¤¹¤ë¤¬¡¢
97 ¼èÆÀ¤·¤¿
98 .I passwd
99 ¹½Â¤ÂΤò
100 .I pwd
101 ¤¬»Ø¤¹Îΰè¤Ë³ÊǼ¤¹¤ë¡£
102 ¤³¤Î
103 .I passwd
104 ¹½Â¤ÂΤˤÏʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬´Þ¤Þ¤ì¡¢
105 ¤³¤ì¤é¤Îʸ»úÎó¤Ï¥µ¥¤¥º
106 .I buflen
107 ¤Î¥Ð¥Ã¥Õ¥¡
108 .I buf
109 ¤Ë³ÊǼ¤µ¤ì¤ë¡£
110 À®¸ù¤·¤¿¾ì¹ç
111 .I *result
112 ¤Ë¤Ï·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬³ÊǼ¤µ¤ì¤ë¡£
113 ¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤Ï
114 .I *result
115 ¤Ë¤Ï NULL ¤¬Æþ¤ë¡£
116 .PP
117 \fIpasswd\fP ¹½Â¤ÂΤϡ¢\fI<pwd.h>\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
118 .sp
119 .in +4n
120 .nf
121 struct passwd {
122     char   *pw_name;       /* ¥æ¡¼¥¶Ì¾ */
123     char   *pw_passwd;     /* ¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É */
124     uid_t   pw_uid;        /* ¥æ¡¼¥¶ ID */
125     gid_t   pw_gid;        /* ¥°¥ë¡¼¥× ID */
126     char   *pw_gecos;      /* ¼Â̾ */
127     char   *pw_dir;        /* ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê */
128     char   *pw_shell;      /* ¥·¥§¥ë¥×¥í¥°¥é¥à */
129 };
130 .fi
131 .in
132 .PP
133 .I buf
134 ¤ËºÇÂçɬÍפʥµ¥¤¥º¤Ï¡¢
135 .BR sysconf (3)
136 ¤Ë°ú¤­¿ô
137 .B _SC_GETPW_R_SIZE_MAX
138 ¤ò»ØÄꤷ¤Æ¼Â¹Ô¤¹¤ë¤³¤È¤Çʬ¤«¤ë¡£
139 .SH ÊÖ¤êÃÍ
140 .BR getpwnam ()
141 ¤È
142 .BR getpwuid ()
143 ´Ø¿ô¤Ï¡¢
144 .I passwd
145 ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£
146 °ìÃפ¹¤ë¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£
147 ¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢
148 .I errno
149 ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£
150 ¸Æ¤Ó½Ð¤·¤Î¸å¤Ç
151 .I errno
152 ¤ò¥Á¥§¥Ã¥¯¤·¤¿¤¤¾ì¹ç¤Ï¡¢
153 ¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë (¤³¤ÎÃͤò) 0 ¤ËÀßÄꤷ¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£
154 .LP
155 ÊÖ¤êÃͤÏÀÅŪ¤ÊÎΰè¤ò»Ø¤·¤Æ¤ª¤ê¡¢¤½¤Î¸å¤Î
156 .BR getpwent (3),
157 .BR getpwnam (),
158 .BR getpwuid ()
159 ¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
160 (ÊÖ¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤ò
161 .BR free (3)
162 ¤ËÅϤµ¤Ê¤¤¤³¤È¡£)
163 .LP
164 À®¸ù¤¹¤ë¤È¡¢
165 .BR getpwnam_r ()
166 ¤È
167 .BR getpwuid_r ()
168 ¤Ï 0 ¤òÊÖ¤·¡¢
169 .I *result
170 ¤Ë
171 .I pwd
172 ¤òÀßÄꤹ¤ë¡£
173 ¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¹¥ï¡¼¥É¡¦¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢
174 0 ¤òÊÖ¤·¡¢
175 .I *result
176 ¤Ë NULL ¤òÀßÄꤹ¤ë¡£
177 ¥¨¥é¡¼¤Î¾ì¹ç¡¢¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤·¡¢
178 .I *result
179 ¤Ë NULL ¤òÀßÄꤹ¤ë¡£
180 .SH ¥¨¥é¡¼
181 .TP
182 .BR 0 " ¤Þ¤¿¤Ï " ENOENT " ¤Þ¤¿¤Ï " ESRCH " ¤Þ¤¿¤Ï " EBADF " ¤Þ¤¿¤Ï " EPERM " ¤Þ¤¿¤Ï ... "
183 »ØÄꤵ¤ì¤¿
184 .I name
185 ¤Þ¤¿¤Ï
186 .I uid
187 ¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£
188 .TP
189 .B EINTR
190 ¥·¥°¥Ê¥ë¤¬¥­¥ã¥Ã¥Á¤µ¤ì¤¿¡£
191 .TP
192 .B EIO
193 I/O ¥¨¥é¡¼¡£
194 .TP
195 .B EMFILE
196 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ë¤ª¤¤¤Æ¡¢
197 ´û¤ËºÇÂç¿ô (OPEN_MAX) ¤Î¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¡£
198 .TP
199 .B ENFILE
200 ¥·¥¹¥Æ¥à¾å¤Ç´û¤ËºÇÂç¿ô¤Î¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¡£
201 .TP
202 .B ENOMEM
203 .\" not in POSIX
204 .\" POSIX ¤Ë¤Ï¤Ê¤¤¡£
205 .I passwd
206 ¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ½½Ê¬¡£
207 .\" ¤³¤Î¹½Â¤ÂΤÏÀÅŪ¤Ç¤¢¤ê¡¢0 ²ó¤Þ¤¿¤Ï 1 ²ó³ä¤êÅö¤Æ¤é¤ì¤ë¡£
208 .\" ¥á¥â¥ê¥ê¡¼¥¯¤Ï̵¤¤¡£(libc45)
209 .TP
210 .B ERANGE
211 Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬ÉÔ½½Ê¬¤Ç¤¢¤ë¡£
212 .SH ¥Õ¥¡¥¤¥ë
213 .TP
214 .I /etc/passwd
215 ¥í¡¼¥«¥ë¤Î¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë
216 .SH ½àµò
217 SVr4, 4.3BSD, POSIX.1-2001.
218 .SH Ãí°Õ
219 ¾åµ­¤Î¡ÖÊÖ¤êÃ͡װʲ¼¤Îµ­½Ò¤Ï POSIX.1-2001 ¤Ëµò¤ë¡£
220 ¤³¤Îɸ½à¤Ï¡Ö(¥¨¥ó¥È¥ê¤¬) ¸«¤Ä¤«¤é¤Ê¤¤¤³¤È¡×¤ò¥¨¥é¡¼¤È¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢
221 ¤½¤Î¤è¤¦¤Ê¾ì¹ç¤Ë
222 .I errno
223 ¤¬¤É¤Î¤è¤¦¤ÊÃͤˤʤ뤫¤òÄê¤á¤Æ¤¤¤Ê¤¤¡£
224 ¤½¤Î¤¿¤á¡¢¥¨¥é¡¼¤òǧ¼±¤¹¤ë¤³¤È¤ÏÉÔ²Äǽ¤Ç¤¢¤ë¡£
225 POSIX ¤Ë½àµò¤·¤Æ¡¢¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï
226 .I errno
227 ¤òÊѹ¹¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡¢¤È¼çÄ¥¤¹¤ë¿Í¤â¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
228 ÍÍ¡¹¤Ê Unix ·Ï¤Î¥·¥¹¥Æ¥à¤Ç»î¤·¤Æ¤ß¤ë¤È¡¢¤½¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï
229 0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM ¤È¤¤¤Ã¤¿ÍÍ¡¹¤ÊÃͤ¬ÊÖ¤µ¤ì¤ë¡£
230 ¾¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
231 .\" ¤è¤êÀµ³Î¤Ë¤Ï:
232 .\" AIX 5.1 ¤Ï ESRCH ¤òÊÖ¤¹¡£
233 .\" OSF1 4.0g ¤Ï EWOULDBLOCK ¤òÊÖ¤¹¡£
234 .\" libc, glibc (¥Ð¡¼¥¸¥ç¥ó 2.6 ¤Þ¤Ç), Irix 6.5 ¤Ï ENOENT ¤òÊÖ¤¹¡£
235 .\" glibc (¥Ð¡¼¥¸¥ç¥ó 2.7 °Ê¹ß) ¤Ï 0 ¤òÊÖ¤¹¡£
236 .\" FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 ¤Ï EPERM ¤òÊÖ¤¹¡£
237 .\" SunOS 5.8 ¤Ï EBADF ¤òÊÖ¤¹¡£
238 .\" Tru64 5.1b, HP-UX-11i, SunOS 5.7 ¤Ï 0 ¤òÊÖ¤¹¡£
239
240 ¥Õ¥£¡¼¥ë¥É
241 .I pw_dir
242 ¤Ë¤Ï¡¢¥æ¡¼¥¶¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê̾¤Î½é´üÃͤ¬³ÊǼ¤µ¤ì¤ë¡£
243 ¥í¥°¥¤¥ó¥×¥í¥»¥¹¤Ï¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÎÃͤò»È¤Ã¤Æ¡¢
244 ¥í¥°¥¤¥ó¥·¥§¥ë¤Î
245 .B HOME
246 ´Ä¶­ÊÑ¿ô¤ò½é´ü²½¤¹¤ë¡£
247 ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¡¢¥æ¡¼¥¶¤Î¥Û¡¼¥à¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ò·èÄꤹ¤ë¾ì¹ç¤Ë¤Ï¡¢
248 .RI ( getpwuid(getuid())\->pw_dir
249 ¤ÎÃͤǤϤʤ¯)
250 .B HOME
251 ¤ÎÃͤò¸¡ºº¤¹¤ë¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£
252 ¤Ê¤¼¤Ê¤é¡¢¤³¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¡¢¥æ¡¼¥¶¤¬¥í¥°¥¤¥ó¡¦¥»¥Ã¥·¥ç¥óÃæ¤Ç
253 ¡Ö¥Û¡¼¥à¡¦¥Ç¥£¥ì¥¯¥È¥ê¡×¤Î°ÕÌ£¤òÊѹ¹¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¤«¤é¤Ç¤¢¤ë¡£
254 Ê̤Υ桼¥¶¤Î¥Û¡¼¥à¡¦¥Ç¥£¥ì¥¯¥È¥ê (¤Î½é´üÃÍ) ¤òÃΤë¤Ë¤Ï
255 .I getpwnam("username")\->pw_dir
256 ¤«Æ±ÍͤÎÊýË¡¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£
257 .SH Îã
258 °Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï
259 .BR getpwnam_r ()
260 ¤Î»ÈÍÑÎã¤ò¼¨¤·¤¿¤â¤Î¤Ç¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ÇÅϤµ¤ì¤¿¥æ¡¼¥¶Ì¾¤ËÂФ¹¤ë
261 ´°Á´¤Ê¥æ¡¼¥¶Ì¾¤È¥æ¡¼¥¶ ID ¤òõ¤¹¤â¤Î¤Ç¤¢¤ë¡£
262
263 .nf
264 #include <pwd.h>
265 #include <stdio.h>
266 #include <stdlib.h>
267 #include <unistd.h>
268 #include <errno.h>
269
270 int
271 main(int argc, char *argv[])
272 {
273     struct passwd pwd;
274     struct passwd *result;
275     char *buf;
276     size_t bufsize;
277     int s;
278
279     if (argc != 2) {
280         fprintf(stderr, "Usage: %s username\\n", argv[0]);
281         exit(EXIT_FAILURE);
282     }
283
284     bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
285     if (bufsize == \-1)          /* Ãͤò·èÄê¤Ç¤­¤Ê¤«¤Ã¤¿ */
286         bufsize = 16384;        /* ½½Ê¬Â礭¤ÊÃͤˤ¹¤Ù¤­ */
287
288     buf = malloc(bufsize);
289     if (buf == NULL) {
290         perror("malloc");
291         exit(EXIT_FAILURE);
292     }
293
294     s = getpwnam_r(argv[1], &pwd, buf, bufsize, &result);
295     if (result == NULL) {
296         if (s == 0)
297             printf("Not found\\n");
298         else {
299             errno = s;
300             perror("getpwnam_r");
301         }
302         exit(EXIT_FAILURE);
303     }
304
305     printf("Name: %s; UID: %ld\\n", pwd.pw_gecos, (long) pwd.pw_uid);
306     exit(EXIT_SUCCESS);
307 }
308 .fi
309 .SH ´ØÏ¢¹àÌÜ
310 .BR endpwent (3),
311 .BR fgetpwent (3),
312 .BR getgrnam (3),
313 .BR getpw (3),
314 .BR getpwent (3),
315 .BR getspnam (3),
316 .BR putpwent (3),
317 .BR setpwent (3),
318 .BR passwd (5)