# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2012-03-22 04:26+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: build/C/man3/fgetgrent.3:28 #, no-wrap msgid "FGETGRENT" msgstr "" #. type: TH #: build/C/man3/fgetgrent.3:28 build/C/man3/fgetpwent.3:31 #, no-wrap msgid "2008-07-10" msgstr "" #. type: TH #: build/C/man3/fgetgrent.3:28 build/C/man3/fgetpwent.3:31 build/C/man3/getgrent_r.3:23 build/C/man3/getgrouplist.3:27 build/C/man3/getpw.3:30 build/C/man3/getpwent.3:31 build/C/man3/getpwent_r.3:23 build/C/man3/getpwnam.3:35 build/C/man3/getspnam.3:6 build/C/man3/initgroups.3:30 build/C/man3/putgrent.3:4 build/C/man3/putpwent.3:28 build/C/man3/setaliasent.3:6 #, no-wrap msgid "GNU" msgstr "" #. type: TH #: build/C/man3/fgetgrent.3:28 build/C/man3/fgetpwent.3:31 build/C/man5/ftpusers.5:17 build/C/man3/getgrent.3:28 build/C/man3/getgrent_r.3:23 build/C/man3/getgrnam.3:31 build/C/man3/getgrouplist.3:27 build/C/man3/getpw.3:30 build/C/man3/getpwent.3:31 build/C/man3/getpwent_r.3:23 build/C/man3/getpwnam.3:35 build/C/man3/getspnam.3:6 build/C/man5/group.5:25 build/C/man3/initgroups.3:30 build/C/man5/passwd.5:29 build/C/man3/putgrent.3:4 build/C/man3/putpwent.3:28 build/C/man3/setaliasent.3:6 #, no-wrap msgid "Linux Programmer's Manual" msgstr "" #. type: SH #: build/C/man3/fgetgrent.3:29 build/C/man3/fgetpwent.3:32 build/C/man5/ftpusers.5:18 build/C/man3/getgrent.3:29 build/C/man3/getgrent_r.3:24 build/C/man3/getgrnam.3:32 build/C/man3/getgrouplist.3:28 build/C/man3/getpw.3:31 build/C/man3/getpwent.3:32 build/C/man3/getpwent_r.3:24 build/C/man3/getpwnam.3:36 build/C/man3/getspnam.3:7 build/C/man5/group.5:26 build/C/man3/initgroups.3:31 build/C/man5/passwd.5:30 build/C/man3/putgrent.3:5 build/C/man3/putpwent.3:29 build/C/man3/setaliasent.3:7 #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: build/C/man3/fgetgrent.3:31 msgid "fgetgrent - get group file entry" msgstr "" #. type: SH #: build/C/man3/fgetgrent.3:31 build/C/man3/fgetpwent.3:34 build/C/man3/getgrent.3:31 build/C/man3/getgrent_r.3:26 build/C/man3/getgrnam.3:34 build/C/man3/getgrouplist.3:30 build/C/man3/getpw.3:33 build/C/man3/getpwent.3:34 build/C/man3/getpwent_r.3:26 build/C/man3/getpwnam.3:38 build/C/man3/getspnam.3:11 build/C/man3/initgroups.3:33 build/C/man3/putgrent.3:7 build/C/man3/putpwent.3:31 build/C/man3/setaliasent.3:10 #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: build/C/man3/fgetgrent.3:36 #, no-wrap msgid "" "B<#include Estdio.hE>\n" "B<#include Esys/types.hE>\n" "B<#include Egrp.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/fgetgrent.3:38 #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/fgetgrent.3:43 build/C/man3/fgetpwent.3:46 build/C/man3/getgrent.3:46 build/C/man3/getgrent_r.3:42 build/C/man3/getgrnam.3:55 build/C/man3/getgrouplist.3:40 build/C/man3/getpwent.3:49 build/C/man3/getpwent_r.3:42 build/C/man3/getpwnam.3:59 build/C/man3/getspnam.3:59 build/C/man3/initgroups.3:44 build/C/man3/putpwent.3:43 msgid "Feature Test Macro Requirements for glibc (see B(7)):" msgstr "" #. type: Plain text #: build/C/man3/fgetgrent.3:47 msgid "B(): _SVID_SOURCE" msgstr "" #. type: SH #: build/C/man3/fgetgrent.3:47 build/C/man3/fgetpwent.3:50 build/C/man5/ftpusers.5:20 build/C/man3/getgrent.3:66 build/C/man3/getgrent_r.3:50 build/C/man3/getgrnam.3:65 build/C/man3/getgrouplist.3:44 build/C/man3/getpw.3:41 build/C/man3/getpwent.3:60 build/C/man3/getpwent_r.3:49 build/C/man3/getpwnam.3:69 build/C/man3/getspnam.3:70 build/C/man5/group.5:28 build/C/man3/initgroups.3:48 build/C/man5/passwd.5:32 build/C/man3/putgrent.3:13 build/C/man3/putpwent.3:47 build/C/man3/setaliasent.3:28 #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: build/C/man3/fgetgrent.3:61 msgid "" "The B() function returns a pointer to a structure containing the " "group information from the file referred to by I. The first time it " "is called it returns the first entry; thereafter, it returns successive " "entries. The file referred to by I must have the same format as " "I (see B(5))." msgstr "" #. type: Plain text #: build/C/man3/fgetgrent.3:63 build/C/man3/getgrent.3:90 build/C/man3/getgrent_r.3:67 build/C/man3/getgrnam.3:84 msgid "The I structure is defined in Igrp.hE> as follows:" msgstr "" #. type: Plain text #: build/C/man3/fgetgrent.3:72 #, no-wrap msgid "" "struct group {\n" " char *gr_name; /* group name */\n" " char *gr_passwd; /* group password */\n" " gid_t gr_gid; /* group ID */\n" " char **gr_mem; /* group members */\n" "};\n" msgstr "" #. type: SH #: build/C/man3/fgetgrent.3:74 build/C/man3/fgetpwent.3:79 build/C/man3/getgrent.3:104 build/C/man3/getgrent_r.3:100 build/C/man3/getgrnam.3:128 build/C/man3/getgrouplist.3:76 build/C/man3/getpw.3:70 build/C/man3/getpwent.3:101 build/C/man3/getpwent_r.3:102 build/C/man3/getpwnam.3:135 build/C/man3/getspnam.3:212 build/C/man3/initgroups.3:60 build/C/man3/putgrent.3:35 build/C/man3/putpwent.3:68 build/C/man3/setaliasent.3:85 #, no-wrap msgid "RETURN VALUE" msgstr "" #. type: Plain text #: build/C/man3/fgetgrent.3:81 msgid "" "The B() function returns a pointer to a I structure, or " "NULL if there are no more entries or an error occurs." msgstr "" #. type: SH #: build/C/man3/fgetgrent.3:81 build/C/man3/fgetpwent.3:86 build/C/man3/getgrent.3:127 build/C/man3/getgrent_r.3:107 build/C/man3/getgrnam.3:166 build/C/man3/getpw.3:76 build/C/man3/getpwent.3:123 build/C/man3/getpwent_r.3:109 build/C/man3/getpwnam.3:173 build/C/man3/getspnam.3:223 build/C/man3/initgroups.3:67 build/C/man3/putpwent.3:73 #, no-wrap msgid "ERRORS" msgstr "" #. type: TP #: build/C/man3/fgetgrent.3:82 build/C/man3/fgetpwent.3:87 build/C/man3/getgrent.3:140 build/C/man3/getgrnam.3:188 build/C/man3/getpw.3:85 build/C/man3/getpwent.3:138 build/C/man3/getpwnam.3:195 build/C/man3/initgroups.3:68 #, no-wrap msgid "B" msgstr "" #. not in POSIX #. to allocate the group structure, or to allocate buffers #. type: Plain text #: build/C/man3/fgetgrent.3:87 build/C/man3/getgrent.3:146 build/C/man3/getgrnam.3:195 msgid "Insufficient memory to allocate I structure." msgstr "" #. type: SH #: build/C/man3/fgetgrent.3:87 build/C/man3/fgetpwent.3:96 build/C/man3/getgrent.3:153 build/C/man3/getgrent_r.3:115 build/C/man3/getgrnam.3:202 build/C/man3/getgrouplist.3:96 build/C/man3/getpw.3:94 build/C/man3/getpwent.3:152 build/C/man3/getpwent_r.3:117 build/C/man3/getpwnam.3:209 build/C/man3/getspnam.3:240 build/C/man3/initgroups.3:80 build/C/man3/putgrent.3:37 build/C/man3/putpwent.3:77 build/C/man3/setaliasent.3:97 #, no-wrap msgid "CONFORMING TO" msgstr "" #. type: Plain text #: build/C/man3/fgetgrent.3:89 build/C/man3/fgetpwent.3:98 build/C/man3/putpwent.3:79 msgid "SVr4." msgstr "" #. type: SH #: build/C/man3/fgetgrent.3:89 build/C/man3/fgetpwent.3:98 build/C/man5/ftpusers.5:47 build/C/man3/getgrent.3:155 build/C/man3/getgrent_r.3:182 build/C/man3/getgrnam.3:225 build/C/man3/getgrouplist.3:187 build/C/man3/getpw.3:103 build/C/man3/getpwent.3:157 build/C/man3/getpwent_r.3:179 build/C/man3/getpwnam.3:305 build/C/man3/getspnam.3:244 build/C/man5/group.5:60 build/C/man3/initgroups.3:82 build/C/man5/passwd.5:131 build/C/man3/putgrent.3:39 build/C/man3/putpwent.3:79 build/C/man3/setaliasent.3:141 #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: build/C/man3/fgetgrent.3:99 msgid "" "B(3), B(3), B(3), B(3), " "B(3), B(3), B(3), B(3), B(5)" msgstr "" #. type: SH #: build/C/man3/fgetgrent.3:99 build/C/man3/fgetpwent.3:109 build/C/man5/ftpusers.5:51 build/C/man3/getgrent.3:163 build/C/man3/getgrent_r.3:189 build/C/man3/getgrnam.3:232 build/C/man3/getgrouplist.3:193 build/C/man3/getpw.3:112 build/C/man3/getpwent.3:165 build/C/man3/getpwent_r.3:187 build/C/man3/getpwnam.3:315 build/C/man3/getspnam.3:249 build/C/man5/group.5:66 build/C/man3/initgroups.3:86 build/C/man5/passwd.5:139 build/C/man3/putgrent.3:43 build/C/man3/putpwent.3:87 build/C/man3/setaliasent.3:150 #, no-wrap msgid "COLOPHON" msgstr "" #. type: Plain text #: build/C/man3/fgetgrent.3:106 build/C/man3/fgetpwent.3:116 build/C/man5/ftpusers.5:58 build/C/man3/getgrent.3:170 build/C/man3/getgrent_r.3:196 build/C/man3/getgrnam.3:239 build/C/man3/getgrouplist.3:200 build/C/man3/getpw.3:119 build/C/man3/getpwent.3:172 build/C/man3/getpwent_r.3:194 build/C/man3/getpwnam.3:322 build/C/man3/getspnam.3:256 build/C/man5/group.5:73 build/C/man3/initgroups.3:93 build/C/man5/passwd.5:146 build/C/man3/putgrent.3:50 build/C/man3/putpwent.3:94 build/C/man3/setaliasent.3:157 msgid "" "This page is part of release 3.37 of the Linux I project. A " "description of the project, and information about reporting bugs, can be " "found at http://www.kernel.org/doc/man-pages/." msgstr "" #. type: TH #: build/C/man3/fgetpwent.3:31 #, no-wrap msgid "FGETPWENT" msgstr "" #. type: Plain text #: build/C/man3/fgetpwent.3:34 msgid "fgetpwent - get password file entry" msgstr "" #. type: Plain text #: build/C/man3/fgetpwent.3:39 build/C/man3/putpwent.3:36 #, no-wrap msgid "" "B<#include Estdio.hE>\n" "B<#include Esys/types.hE>\n" "B<#include Epwd.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/fgetpwent.3:41 #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/fgetpwent.3:50 msgid "B(): _SVID_SOURCE" msgstr "" #. type: Plain text #: build/C/man3/fgetpwent.3:63 msgid "" "The B() function returns a pointer to a structure containing the " "broken out fields of a line in the file I. The first time it is " "called it returns the first entry; thereafter, it returns successive " "entries. The file referred to by I must have the same format as " "I (see B(5))." msgstr "" #. type: Plain text #: build/C/man3/fgetpwent.3:65 build/C/man3/getpw.3:53 build/C/man3/getpwent.3:84 build/C/man3/getpwent_r.3:66 build/C/man3/getpwnam.3:88 build/C/man3/putpwent.3:54 msgid "The I structure is defined in Ipwd.hE> as follows:" msgstr "" #. type: Plain text #: build/C/man3/fgetpwent.3:77 #, no-wrap msgid "" "struct passwd {\n" " char *pw_name; /* username */\n" " char *pw_passwd; /* user password */\n" " uid_t pw_uid; /* user ID */\n" " gid_t pw_gid; /* group ID */\n" " char *pw_gecos; /* real name */\n" " char *pw_dir; /* home directory */\n" " char *pw_shell; /* shell program */\n" "};\n" msgstr "" #. type: Plain text #: build/C/man3/fgetpwent.3:86 msgid "" "The B() function returns a pointer to a I structure, or " "NULL if there are no more entries or an error occurs." msgstr "" #. not in POSIX #. This structure is static, allocated 0 or 1 times. No memory leak. (libc45) #. type: Plain text #: build/C/man3/fgetpwent.3:92 build/C/man3/getpw.3:90 build/C/man3/getpwent.3:145 build/C/man3/getpwnam.3:202 msgid "Insufficient memory to allocate I structure." msgstr "" #. type: SH #: build/C/man3/fgetpwent.3:92 build/C/man5/ftpusers.5:45 build/C/man3/getgrent.3:149 build/C/man3/getgrnam.3:198 build/C/man3/getpw.3:90 build/C/man3/getpwent.3:148 build/C/man3/getpwnam.3:205 build/C/man3/getspnam.3:227 build/C/man5/group.5:52 build/C/man3/initgroups.3:76 build/C/man5/passwd.5:111 build/C/man3/setaliasent.3:91 #, no-wrap msgid "FILES" msgstr "" #. type: Plain text #: build/C/man3/fgetpwent.3:93 build/C/man3/getpw.3:91 build/C/man3/getpwent.3:149 build/C/man3/getpwnam.3:206 build/C/man5/passwd.5:113 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man3/fgetpwent.3:96 build/C/man3/getpw.3:94 msgid "password database file" msgstr "" #. type: Plain text #: build/C/man3/fgetpwent.3:109 msgid "" "B(3), B(3), B(3), B(3), B(3), " "B(3), B(3), B(3), B(3), B(5)" msgstr "" #. type: TH #: build/C/man5/ftpusers.5:17 #, no-wrap msgid "FTPUSERS" msgstr "" #. type: TH #: build/C/man5/ftpusers.5:17 #, no-wrap msgid "2000-08-27" msgstr "" #. type: TH #: build/C/man5/ftpusers.5:17 build/C/man5/group.5:25 build/C/man5/passwd.5:29 #, no-wrap msgid "Linux" msgstr "" #. type: Plain text #: build/C/man5/ftpusers.5:20 msgid "ftpusers - list of users that may not log in via the FTP daemon" msgstr "" #. type: Plain text #: build/C/man5/ftpusers.5:39 msgid "" "The text file B contains a list of users that may not log in using " "the File Transfer Protocol (FTP) server daemon. This file is used not " "merely for system administration purposes but for improving security within " "a TCP/IP networked environment. It will typically contain a list of the " "users that either have no business using ftp or have too many privileges to " "be allowed to log in through the FTP server daemon. Such users usually " "include root, daemon, bin, uucp, and news. If your FTP server daemon " "doesn't use B then it is suggested that you read its documentation " "to find out how to block access for certain users. Washington University " "FTP server Daemon (wuftpd) and Professional FTP Daemon (proftpd) are known " "to make use of B." msgstr "" #. type: SS #: build/C/man5/ftpusers.5:39 #, no-wrap msgid "Format" msgstr "" #. type: Plain text #: build/C/man5/ftpusers.5:45 msgid "" "The format of B is very simple. There is one account name (or " "username) per line. Lines starting with a # are ignored." msgstr "" #. type: Plain text #: build/C/man5/ftpusers.5:47 msgid "I" msgstr "" #. type: Plain text #: build/C/man5/ftpusers.5:51 msgid "B(5), B(8), B(8)" msgstr "" #. type: TH #: build/C/man3/getgrent.3:28 #, no-wrap msgid "GETGRENT" msgstr "" #. type: TH #: build/C/man3/getgrent.3:28 build/C/man3/getgrent_r.3:23 build/C/man3/getgrnam.3:31 build/C/man3/getpw.3:30 build/C/man3/getpwent.3:31 build/C/man3/getpwent_r.3:23 build/C/man3/getpwnam.3:35 build/C/man5/group.5:25 #, no-wrap msgid "2010-10-21" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:31 msgid "getgrent, setgrent, endgrent - get group file entry" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:35 build/C/man3/getgrnam.3:38 build/C/man3/initgroups.3:37 #, no-wrap msgid "" "B<#include Esys/types.hE>\n" "B<#include Egrp.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:37 #, no-wrap msgid "B\n" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:39 #, no-wrap msgid "B\n" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:41 #, no-wrap msgid "B\n" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:51 msgid "B():" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:54 msgid "" "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\\ E=\\ 500 || " "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED ||" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:56 msgid "/* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E=\\ 200809L" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:60 msgid "B(), B():" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:63 msgid "" "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\\ E=\\ 500 || " "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:78 msgid "" "The B() function returns a pointer to a structure containing the " "broken-out fields of a record in the group database (e.g., the local group " "file I, NIS, and LDAP). The first time B() is " "called, it returns the first entry; thereafter, it returns successive " "entries." msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:83 msgid "" "The B() function rewinds to the beginning of the group database, " "to allow repeated scans." msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:88 msgid "" "The B() function is used to close the group database after all " "processing has been performed." msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:99 build/C/man3/getgrnam.3:93 #, no-wrap msgid "" "struct group {\n" " char *gr_name; /* group name */\n" " char *gr_passwd; /* group password */\n" " gid_t gr_gid; /* group ID */\n" " char **gr_mem; /* group members */\n" "};\n" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:104 build/C/man3/getgrent_r.3:81 build/C/man3/getgrnam.3:98 msgid "For more information about the fields of this structure, see B(5)." msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:111 msgid "" "The B() function returns a pointer to a I structure, or " "NULL if there are no more entries or an error occurs." msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:118 msgid "" "Upon error, I may be set. If one wants to check I after the " "call, it should be set to zero before the call." msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:127 msgid "" "The return value may point to a static area, and may be overwritten by " "subsequent calls to B(), B(3), or B(3). (Do " "not pass the returned pointer to B(3).)" msgstr "" #. type: TP #: build/C/man3/getgrent.3:128 build/C/man3/getgrnam.3:174 build/C/man3/getpwent.3:124 build/C/man3/getpwnam.3:181 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:131 build/C/man3/getgrnam.3:177 build/C/man3/getpwent.3:127 build/C/man3/getpwnam.3:184 msgid "A signal was caught." msgstr "" #. type: TP #: build/C/man3/getgrent.3:131 build/C/man3/getgrnam.3:177 build/C/man3/getpwent.3:127 build/C/man3/getpwnam.3:184 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:134 build/C/man3/getgrnam.3:180 build/C/man3/getpwent.3:130 build/C/man3/getpwnam.3:187 msgid "I/O error." msgstr "" #. type: TP #: build/C/man3/getgrent.3:134 build/C/man3/getgrnam.3:180 build/C/man3/getpwent.3:130 build/C/man3/getpwnam.3:187 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:137 msgid "The calling process already has too many open files." msgstr "" #. type: TP #: build/C/man3/getgrent.3:137 build/C/man3/getgrnam.3:185 build/C/man3/getpwent.3:135 build/C/man3/getpwnam.3:192 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:140 msgid "Too many open files in the system." msgstr "" #. type: TP #: build/C/man3/getgrent.3:146 build/C/man3/getgrent_r.3:111 build/C/man3/getgrnam.3:195 build/C/man3/getpwent.3:145 build/C/man3/getpwent_r.3:113 build/C/man3/getpwnam.3:202 build/C/man3/getspnam.3:224 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:149 build/C/man3/getgrnam.3:198 build/C/man3/getpwent.3:148 build/C/man3/getpwnam.3:205 msgid "Insufficient buffer space supplied." msgstr "" #. type: TP #: build/C/man3/getgrent.3:150 build/C/man3/getgrnam.3:199 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:153 build/C/man3/getgrnam.3:202 msgid "local group database file" msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:155 build/C/man3/getgrnam.3:204 msgid "SVr4, 4.3BSD, POSIX.1-2001." msgstr "" #. type: Plain text #: build/C/man3/getgrent.3:163 msgid "" "B(3), B(3), B(3), B(3), " "B(3), B(3), B(5)" msgstr "" #. type: TH #: build/C/man3/getgrent_r.3:23 #, no-wrap msgid "GETGRENT_R" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:26 msgid "getgrent_r, fgetgrent_r - get group file entry reentrantly" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:29 #, no-wrap msgid "B<#include Egrp.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:31 #, no-wrap msgid "BIB<, char *>IB<,>\n" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:33 #, no-wrap msgid "B< size_t >IB<, struct group **>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:35 #, no-wrap msgid "" "BIB<, struct group *>IB<, char " "*>IB<,>\n" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:37 #, no-wrap msgid "B< size_t >IB<, struct group **>IB<);>\n" msgstr "" #. FIXME . The FTM requirements seem inconsistent here. File a glibc bug? #. type: Plain text #: build/C/man3/getgrent_r.3:47 msgid "B(): _GNU_SOURCE" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:50 msgid "B(): _SVID_SOURCE" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:63 msgid "" "The functions B() and B() are the reentrant " "versions of B(3) and B(3). The former reads the next " "group entry from the stream initialized by B(3). The latter reads " "the next group entry from the stream I." msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:76 #, no-wrap msgid "" "struct group {\n" " char *gr_name; /* group name */\n" " char *gr_passwd; /* group password */\n" " gid_t gr_gid; /* group ID */\n" " char **gr_mem; /* group members */\n" "};\n" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:100 msgid "" "The nonreentrant functions return a pointer to static storage, where this " "static storage contains further pointers to group name, password and " "members. The reentrant functions described here return all of that in " "caller-provided buffers. First of all there is the buffer I that can " "hold a I. And next the buffer I of size I that " "can hold additional strings. The result of these functions, the I read from the stream, is stored in the provided buffer I<*gbuf>, and " "a pointer to this I is returned in I<*gbufp>." msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:107 msgid "" "On success, these functions return 0 and I<*gbufp> is a pointer to the " "I. On error, these functions return an error value and " "I<*gbufp> is NULL." msgstr "" #. type: TP #: build/C/man3/getgrent_r.3:108 build/C/man3/getpw.3:81 build/C/man3/getpwent_r.3:110 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:111 build/C/man3/getpwent_r.3:113 msgid "No more entries." msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:115 build/C/man3/getpwent_r.3:117 msgid "Insufficient buffer space supplied. Try again with larger buffer." msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:120 build/C/man3/getpwent_r.3:122 msgid "" "These functions are GNU extensions, done in a style resembling the POSIX " "version of functions like B(3). Other systems use prototype" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:125 #, no-wrap msgid "" "struct group *getgrent_r(struct group *grp, char *buf,\n" " int buflen);\n" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:129 build/C/man3/getpwent_r.3:131 msgid "or, better," msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:134 #, no-wrap msgid "" "int getgrent_r(struct group *grp, char *buf, int buflen,\n" " FILE **gr_fp);\n" msgstr "" #. type: SH #: build/C/man3/getgrent_r.3:136 build/C/man3/getgrnam.3:204 build/C/man3/getpwent_r.3:139 build/C/man3/getpwnam.3:214 build/C/man5/passwd.5:113 #, no-wrap msgid "NOTES" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:141 msgid "" "The function B() is not really reentrant since it shares the " "reading position in the stream with all other threads." msgstr "" #. type: SH #: build/C/man3/getgrent_r.3:141 build/C/man3/getgrouplist.3:107 build/C/man3/getpwent_r.3:144 build/C/man3/getpwnam.3:253 build/C/man3/setaliasent.3:111 #, no-wrap msgid "EXAMPLE" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:148 #, no-wrap msgid "" "#define _GNU_SOURCE\n" "#include Egrp.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#define BUFLEN 4096\n" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:155 #, no-wrap msgid "" "int\n" "main(void)\n" "{\n" " struct group grp, *grpp;\n" " char buf[BUFLEN];\n" " int i;\n" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:172 #, no-wrap msgid "" " setgrent();\n" " while (1) {\n" " i = getgrent_r(&grp, buf, BUFLEN, &grpp);\n" " if (i)\n" " break;\n" " printf(\"%s (%d):\", grpp-Egr_name, grpp-Egr_gid);\n" " for (i = 0; ; i++) {\n" " if (grpp-Egr_mem[i] == NULL)\n" " break;\n" " printf(\" %s\", grpp-Egr_mem[i]);\n" " }\n" " printf(\"\\en\");\n" " }\n" " endgrent();\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: Plain text #: build/C/man3/getgrent_r.3:189 msgid "" "B(3), B(3), B(3), B(3), " "B(3), B(5)" msgstr "" #. type: TH #: build/C/man3/getgrnam.3:31 #, no-wrap msgid "GETGRNAM" msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:34 msgid "getgrnam, getgrnam_r, getgrgid, getgrgid_r - get group file entry" msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:40 #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:42 #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:44 #, no-wrap msgid "BIB<, struct group *>IB<,>\n" msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:46 build/C/man3/getgrnam.3:50 #, no-wrap msgid "" "B< char *>IB<, size_t >IB<, struct group " "**>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:48 #, no-wrap msgid "BIB<, struct group *>IB<,>\n" msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:60 msgid "B(), B():" msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:63 build/C/man3/getpwnam.3:67 msgid "" "_POSIX_C_SOURCE\\ E=\\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE " "|| _POSIX_SOURCE" msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:75 msgid "" "The B() function returns a pointer to a structure containing the " "broken-out fields of the record in the group database (e.g., the local group " "file I, NIS, and LDAP) that matches the group name I." msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:82 msgid "" "The B() function returns a pointer to a structure containing the " "broken-out fields of the record in the group database that matches the group " "ID I." msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:121 msgid "" "The B() and B() functions obtain the same " "information as B() and B(), but store the retrieved " "I structure in the space pointed to by I. The string fields " "pointed to by the members of the I structure are stored in the buffer " "I of size I. A pointer to the result (in case of success) or " "NULL (in case no entry was found or an error occurred) is stored in " "I<*result>." msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:128 msgid "" "The maximum needed size for I can be found using B(3) with " "the argument B<_SC_GETGR_R_SIZE_MAX>." msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:143 msgid "" "The B() and B() functions return a pointer to a " "I structure, or NULL if the matching entry is not found or an error " "occurs. If an error occurs, I is set appropriately. If one wants to " "check I after the call, it should be set to zero before the call." msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:152 msgid "" "The return value may point to a static area, and may be overwritten by " "subsequent calls to B(3), B(), or B(). (Do " "not pass the returned pointer to B(3).)" msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:166 msgid "" "On success, B() and B() return zero, and set " "I<*result> to I. If no matching group record was found, these " "functions return 0 and store NULL in I<*result>. In case of error, an error " "number is returned, and NULL is stored in I<*result>." msgstr "" #. type: TP #: build/C/man3/getgrnam.3:167 build/C/man3/getpwnam.3:174 #, no-wrap msgid "B<0> or B or B or B or B or ... " msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:174 msgid "The given I or I was not found." msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:185 build/C/man3/getpwent.3:135 build/C/man3/getpwnam.3:192 msgid "" "The maximum number (B) of files was open already in the calling " "process." msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:188 build/C/man3/getpwent.3:138 build/C/man3/getpwnam.3:195 msgid "The maximum number of files was open already in the system." msgstr "" #. more precisely: #. AIX 5.1 - gives ESRCH #. OSF1 4.0g - gives EWOULDBLOCK #. libc, glibc up to version 2.6, Irix 6.5 - give ENOENT #. glibc since version 2.7 - give 0 #. FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 - give EPERM #. SunOS 5.8 - gives EBADF #. Tru64 5.1b, HP-UX-11i, SunOS 5.7 - give 0 #. type: Plain text #: build/C/man3/getgrnam.3:225 msgid "" "The formulation given above under \"RETURN VALUE\" is from POSIX.1-2001. It " "does not call \"not found\" an error, hence does not specify what value " "I might have in this situation. But that makes it impossible to " "recognize errors. One might argue that according to POSIX I should " "be left unchanged if an entry is not found. Experiments on various " "UNIX-like systems shows that lots of different values occur in this " "situation: 0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM and probably others." msgstr "" #. type: Plain text #: build/C/man3/getgrnam.3:232 msgid "" "B(3), B(3), B(3), B(3), " "B(3), B(5)" msgstr "" #. type: TH #: build/C/man3/getgrouplist.3:27 #, no-wrap msgid "GETGROUPLIST" msgstr "" #. type: TH #: build/C/man3/getgrouplist.3:27 #, no-wrap msgid "2008-07-03" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:30 msgid "getgrouplist - get list of groups to which a user belongs" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:32 build/C/man3/putgrent.3:11 msgid "B<#include Egrp.hE>" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:34 msgid "BIB<, gid_t >IB<,>" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:36 msgid "B< gid_t *>IB<, int *>IB<);>" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:44 msgid "B(): _BSD_SOURCE" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:56 msgid "" "The B() function scans the group database (see B(5)) " "to obtain the list of groups that I belongs to. Up to I<*ngroups> of " "these groups are returned in the array I." msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:66 msgid "" "If it was not among the groups defined for I in the group database, " "then I is included in the list of groups returned by " "B(); typically this argument is specified as the group ID from " "the password record for I." msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:76 msgid "" "The I argument is a value-result argument: on return it always " "contains the number of groups found for I, including I; this " "value may be greater than the number of groups stored in I." msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:84 msgid "" "If the number of groups of which I is a member is less than or equal " "to I<*ngroups>, then the value I<*ngroups> is returned." msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:94 msgid "" "If the user is a member of more than I<*ngroups> groups, then " "B() returns -1. In this case the value returned in " "I<*ngroups> can be used to resize the buffer passed to a further call " "B()." msgstr "" #. type: SH #: build/C/man3/getgrouplist.3:94 #, no-wrap msgid "VERSIONS" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:96 msgid "This function is present since glibc 2.2.4." msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:98 msgid "This function is nonstandard; it appears on most BSDs." msgstr "" #. type: SH #: build/C/man3/getgrouplist.3:98 build/C/man3/getpw.3:96 build/C/man5/group.5:54 #, no-wrap msgid "BUGS" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:107 msgid "" "In glibc versions before 2.3.3, the implementation of this function contains " "a buffer-overrun bug: it returns the complete list of groups for I in " "the array I, even when the number of groups exceeds I<*ngroups>." msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:116 msgid "" "The program below displays the group list for the user named in its first " "command-line argument. The second command-line argument specifies the " "I value to be supplied to B(). The following shell " "session shows examples of the use of this program:" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:126 #, no-wrap msgid "" "$B< ./a.out cecilia 0>\n" "getgrouplist() returned -1; ngroups = 3\n" "$B< ./a.out cecilia 3>\n" "ngroups = 3\n" "16 (dialout)\n" "33 (video)\n" "100 (users)\n" msgstr "" #. type: SS #: build/C/man3/getgrouplist.3:128 #, no-wrap msgid "Program source" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:135 #, no-wrap msgid "" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Egrp.hE\n" "#include Epwd.hE\n" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:143 #, no-wrap msgid "" "int\n" "main(int argc, char *argv[])\n" "{\n" " int j, ngroups;\n" " gid_t *groups;\n" " struct passwd *pw;\n" " struct group *gr;\n" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:148 #, no-wrap msgid "" " if (argc != 3) {\n" " fprintf(stderr, \"Usage: %s EuserE EngroupsE\\en\", " "argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:150 #, no-wrap msgid " ngroups = atoi(argv[2]);\n" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:156 #, no-wrap msgid "" " groups = malloc(ngroups * sizeof (gid_t));\n" " if (groups == NULL) {\n" " perror(\"malloc\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:158 #, no-wrap msgid " /* Fetch passwd structure (contains first group ID for user) */\n" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:164 #, no-wrap msgid "" " pw = getpwnam(argv[1]);\n" " if (pw == NULL) {\n" " perror(\"getpwnam\");\n" " exit(EXIT_SUCCESS);\n" " }\n" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:166 #, no-wrap msgid " /* Retrieve group list */\n" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:172 #, no-wrap msgid "" " if (getgrouplist(argv[1], pw-Epw_gid, groups, &ngroups) == -1) {\n" " fprintf(stderr, \"getgrouplist() returned -1; ngroups = %d\\en\",\n" " ngroups);\n" "\texit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:174 #, no-wrap msgid " /* Display list of retrieved groups, along with group names */\n" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:183 #, no-wrap msgid "" " fprintf(stderr, \"ngroups = %d\\en\", ngroups);\n" " for (j = 0; j E ngroups; j++) {\n" " printf(\"%d\", groups[j]);\n" " gr = getgrgid(groups[j]);\n" " if (gr != NULL)\n" " printf(\" (%s)\", gr-Egr_name);\n" " printf(\"\\en\");\n" " }\n" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:186 #, no-wrap msgid "" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: Plain text #: build/C/man3/getgrouplist.3:193 msgid "B(2), B(2), B(3), B(5), B(5)" msgstr "" #. type: TH #: build/C/man3/getpw.3:30 #, no-wrap msgid "GETPW" msgstr "" #. type: Plain text #: build/C/man3/getpw.3:33 msgid "getpw - Re-construct password line entry" msgstr "" #. type: Plain text #: build/C/man3/getpw.3:38 #, no-wrap msgid "" "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n" "B<#include Esys/types.hE>\n" "B<#include Epwd.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/getpw.3:40 #, no-wrap msgid "BIB<, char *>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/getpw.3:47 msgid "" "The B() function reconstructs the password line entry for the given " "user ID I in the buffer I. The returned buffer contains a line of " "format" msgstr "" #. type: Plain text #: build/C/man3/getpw.3:50 msgid "B" msgstr "" #. type: Plain text #: build/C/man3/getpw.3:65 build/C/man3/getpwent.3:96 build/C/man3/getpwnam.3:100 #, no-wrap msgid "" "struct passwd {\n" " char *pw_name; /* username */\n" " char *pw_passwd; /* user password */\n" " uid_t pw_uid; /* user ID */\n" " gid_t pw_gid; /* group ID */\n" " char *pw_gecos; /* user information */\n" " char *pw_dir; /* home directory */\n" " char *pw_shell; /* shell program */\n" "};\n" msgstr "" #. type: Plain text #: build/C/man3/getpw.3:70 build/C/man3/getpwent.3:101 build/C/man3/getpwent_r.3:83 msgid "For more information about the fields of this structure, see B(5)." msgstr "" #. type: Plain text #: build/C/man3/getpw.3:76 msgid "" "The B() function returns 0 on success; on error, it returns -1, and " "I is set to indicate the error." msgstr "" #. type: TP #: build/C/man3/getpw.3:77 build/C/man3/putpwent.3:74 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man3/getpw.3:81 msgid "I is NULL." msgstr "" #. type: Plain text #: build/C/man3/getpw.3:85 msgid "No user corresponding to I." msgstr "" #. type: Plain text #: build/C/man3/getpw.3:96 msgid "SVr2." msgstr "" #. type: Plain text #: build/C/man3/getpw.3:103 msgid "" "The B() function is dangerous as it may overflow the provided buffer " "I. It is obsoleted by B(3)." msgstr "" #. type: Plain text #: build/C/man3/getpw.3:112 msgid "" "B(3), B(3), B(3), B(3), " "B(3), B(3), B(3), B(5)" msgstr "" #. type: TH #: build/C/man3/getpwent.3:31 #, no-wrap msgid "GETPWENT" msgstr "" #. type: Plain text #: build/C/man3/getpwent.3:34 msgid "getpwent, setpwent, endpwent - get password file entry" msgstr "" #. type: Plain text #: build/C/man3/getpwent.3:38 build/C/man3/getpwnam.3:42 #, no-wrap msgid "" "B<#include Esys/types.hE>\n" "B<#include Epwd.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/getpwent.3:40 #, no-wrap msgid "B\n" msgstr "" #. type: Plain text #: build/C/man3/getpwent.3:42 #, no-wrap msgid "B\n" msgstr "" #. type: Plain text #: build/C/man3/getpwent.3:44 #, no-wrap msgid "B\n" msgstr "" #. type: Plain text #: build/C/man3/getpwent.3:55 msgid "B(), B(), B():" msgstr "" #. type: Plain text #: build/C/man3/getpwent.3:58 msgid "" "_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\\ E=\\ 500 || " "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED" msgstr "" #. type: Plain text #: build/C/man3/getpwent.3:72 msgid "" "The B() function returns a pointer to a structure containing the " "broken-out fields of a record from the password database (e.g., the local " "password file I, NIS, and LDAP). The first time B() " "is called, it returns the first entry; thereafter, it returns successive " "entries." msgstr "" #. type: Plain text #: build/C/man3/getpwent.3:77 msgid "" "The B() function rewinds to the beginning of the password " "database." msgstr "" #. type: Plain text #: build/C/man3/getpwent.3:82 msgid "" "The B() function is used to close the password database after all " "processing has been performed." msgstr "" #. type: Plain text #: build/C/man3/getpwent.3:114 msgid "" "The B() function returns a pointer to a I structure, or " "NULL if there are no more entries or an error occurs. If an error occurs, " "I is set appropriately. If one wants to check I after the " "call, it should be set to zero before the call." msgstr "" #. type: Plain text #: build/C/man3/getpwent.3:123 msgid "" "The return value may point to a static area, and may be overwritten by " "subsequent calls to B(), B(3), or B(3). (Do " "not pass the returned pointer to B(3).)" msgstr "" #. type: Plain text #: build/C/man3/getpwent.3:152 build/C/man3/getpwnam.3:209 msgid "local password database file" msgstr "" #. type: Plain text #: build/C/man3/getpwent.3:157 build/C/man3/getpwnam.3:214 msgid "" "SVr4, 4.3BSD, POSIX.1-2001. The I field is not specified in " "POSIX, but is present on most implementations." msgstr "" #. type: Plain text #: build/C/man3/getpwent.3:165 msgid "" "B(3), B(3), B(3), B(3), " "B(3), B(3), B(5)" msgstr "" #. type: TH #: build/C/man3/getpwent_r.3:23 #, no-wrap msgid "GETPWENT_R" msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:26 msgid "getpwent_r, fgetpwent_r - get passwd file entry reentrantly" msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:29 #, no-wrap msgid "B<#include Epwd.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:31 #, no-wrap msgid "BIB<, char *>IB<,>\n" msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:33 #, no-wrap msgid "B< size_t >IB<, struct passwd **>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:35 #, no-wrap msgid "" "BIB<, struct passwd *>IB<, char " "*>IB<,>\n" msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:37 #, no-wrap msgid "B< size_t >IB<, struct passwd **>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:46 msgid "B(), _BSD_SOURCE || _SVID_SOURCE" msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:49 msgid "B(): _SVID_SOURCE" msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:62 msgid "" "The functions B() and B() are the reentrant " "versions of B(3) and B(3). The former reads the next " "passwd entry from the stream initialized by B(3). The latter " "reads the next passwd entry from the stream I." msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:78 #, no-wrap msgid "" "struct passwd {\n" " char *pw_name; /* username */\n" " char *pw_passwd; /* user password */\n" " uid_t pw_uid; /* user ID */\n" " gid_t pw_gid; /* group ID */\n" " char *pw_gecos; /* user information */\n" " char *pw_dir; /* home directory */\n" " char *pw_shell; /* shell program */\n" "};\n" msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:102 msgid "" "The nonreentrant functions return a pointer to static storage, where this " "static storage contains further pointers to user name, password, gecos " "field, home directory and shell. The reentrant functions described here " "return all of that in caller-provided buffers. First of all there is the " "buffer I that can hold a I. And next the buffer " "I of size I that can hold additional strings. The result of " "these functions, the I read from the stream, is stored in the " "provided buffer I<*pwbuf>, and a pointer to this I is " "returned in I<*pwbufp>." msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:109 msgid "" "On success, these functions return 0 and I<*pwbufp> is a pointer to the " "I. On error, these functions return an error value and " "I<*pwbufp> is NULL." msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:127 #, no-wrap msgid "" "struct passwd *\n" "getpwent_r(struct passwd *pwd, char *buf, int buflen);\n" msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:137 #, no-wrap msgid "" "int\n" "getpwent_r(struct passwd *pwd, char *buf, int buflen,\n" " FILE **pw_fp);\n" msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:144 msgid "" "The function B() is not really reentrant since it shares the " "reading position in the stream with all other threads." msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:150 #, no-wrap msgid "" "#define _GNU_SOURCE\n" "#include Epwd.hE\n" "#include Estdio.hE\n" "#define BUFLEN 4096\n" msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:157 #, no-wrap msgid "" "int\n" "main(void)\n" "{\n" " struct passwd pw, *pwp;\n" " char buf[BUFLEN];\n" " int i;\n" msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:169 #, no-wrap msgid "" " setpwent();\n" " while (1) {\n" " i = getpwent_r(&pw, buf, BUFLEN, &pwp);\n" " if (i)\n" " break;\n" " printf(\"%s (%d)\\etHOME %s\\etSHELL %s\\en\", pwp-Epw_name,\n" " pwp-Epw_uid, pwp-Epw_dir, pwp-Epw_shell);\n" " }\n" " endpwent();\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: Plain text #: build/C/man3/getpwent_r.3:187 msgid "" "B(3), B(3), B(3), B(3), " "B(3), B(3), B(5)" msgstr "" #. type: TH #: build/C/man3/getpwnam.3:35 #, no-wrap msgid "GETPWNAM" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:38 msgid "getpwnam, getpwnam_r, getpwuid, getpwuid_r - get password file entry" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:44 #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:46 #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:48 #, no-wrap msgid "BIB<, struct passwd *>IB<,>\n" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:50 build/C/man3/getpwnam.3:54 #, no-wrap msgid "" "B< char *>IB<, size_t >IB<, struct passwd " "**>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:52 #, no-wrap msgid "BIB<, struct passwd *>IB<,>\n" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:64 msgid "B(), B():" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:79 msgid "" "The B() function returns a pointer to a structure containing the " "broken-out fields of the record in the password database (e.g., the local " "password file I, NIS, and LDAP) that matches the username " "I." msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:86 msgid "" "The B() function returns a pointer to a structure containing the " "broken-out fields of the record in the password database that matches the " "user ID I." msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:106 msgid "See B(5) for more information about these fields." msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:128 msgid "" "The B() and B() functions obtain the same " "information as B() and B(), but store the retrieved " "I structure in the space pointed to by I. The string fields " "pointed to by the members of the I structure are stored in the " "buffer I of size I. A pointer to the result (in case of " "success) or NULL (in case no entry was found or an error occurred) is stored " "in I<*result>." msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:135 msgid "" "The maximum size needed for I can be found using B(3) with " "the argument B<_SC_GETPW_R_SIZE_MAX>." msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:150 msgid "" "The B() and B() functions return a pointer to a " "I structure, or NULL if the matching entry is not found or an error " "occurs. If an error occurs, I is set appropriately. If one wants to " "check I after the call, it should be set to zero before the call." msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:159 msgid "" "The return value may point to a static area, and may be overwritten by " "subsequent calls to B(3), B(), or B(). (Do " "not pass the returned pointer to B(3).)" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:173 msgid "" "On success, B() and B() return zero, and set " "I<*result> to I. If no matching password record was found, these " "functions return 0 and store NULL in I<*result>. In case of error, an error " "number is returned, and NULL is stored in I<*result>." msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:181 msgid "The given I or I was not found." msgstr "" #. more precisely: #. AIX 5.1 - gives ESRCH #. OSF1 4.0g - gives EWOULDBLOCK #. libc, glibc up to version 2.6, Irix 6.5 - give ENOENT #. glibc since version 2.7 - give 0 #. FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 - give EPERM #. SunOS 5.8 - gives EBADF #. Tru64 5.1b, HP-UX-11i, SunOS 5.7 - give 0 #. type: Plain text #: build/C/man3/getpwnam.3:235 msgid "" "The formulation given above under \"RETURN VALUE\" is from POSIX.1-2001. It " "does not call \"not found\" an error, and hence does not specify what value " "I might have in this situation. But that makes it impossible to " "recognize errors. One might argue that according to POSIX I should " "be left unchanged if an entry is not found. Experiments on various " "UNIX-like systems show that lots of different values occur in this " "situation: 0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM and probably others." msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:253 msgid "" "The I field contains the name of the initial working directory of " "the user. Login programs use the value of this field to initialize the " "B environment variable for the login shell. An application that wants " "to determine its user's home directory should inspect the value of B " "(rather than the value Ipw_dir>) since this allows " "the user to modify their notion of \"the home directory\" during a login " "session. To determine the (initial) home directory of another user, it is " "necessary to use Ipw_dir> or similar." msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:258 msgid "" "The program below demonstrates the use of B() to find the full " "username and user ID for the username supplied as a command-line argument." msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:265 #, no-wrap msgid "" "#include Epwd.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Eunistd.hE\n" "#include Eerrno.hE\n" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:274 #, no-wrap msgid "" "int\n" "main(int argc, char *argv[])\n" "{\n" " struct passwd pwd;\n" " struct passwd *result;\n" " char *buf;\n" " size_t bufsize;\n" " int s;\n" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:279 #, no-wrap msgid "" " if (argc != 2) {\n" " fprintf(stderr, \"Usage: %s username\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:283 #, no-wrap msgid "" " bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);\n" " if (bufsize == -1) /* Value was indeterminate */\n" " bufsize = 16384; /* Should be more than enough */\n" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:289 #, no-wrap msgid "" " buf = malloc(bufsize);\n" " if (buf == NULL) {\n" " perror(\"malloc\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:300 #, no-wrap msgid "" " s = getpwnam_r(argv[1], &pwd, buf, bufsize, &result);\n" " if (result == NULL) {\n" " if (s == 0)\n" " printf(\"Not found\\en\");\n" " else {\n" " errno = s;\n" " perror(\"getpwnam_r\");\n" " }\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:304 #, no-wrap msgid "" " printf(\"Name: %s; UID: %ld\\en\", pwd.pw_gecos, (long) pwd.pw_uid);\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: Plain text #: build/C/man3/getpwnam.3:315 msgid "" "B(3), B(3), B(3), B(3), " "B(3), B(3), B(3), B(3), B(5)" msgstr "" #. type: TH #: build/C/man3/getspnam.3:6 #, no-wrap msgid "GETSPNAM" msgstr "" #. type: TH #: build/C/man3/getspnam.3:6 #, no-wrap msgid "2010-02-25" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:11 msgid "" "getspnam, getspnam_r, getspent, getspent_r, setspent, endspent, fgetspent, " "fgetspent_r, sgetspent, sgetspent_r, putspent, lckpwdf, ulckpwdf - get " "shadow password file entry" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:14 #, no-wrap msgid "/* General shadow password file API */\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:16 build/C/man3/getspnam.3:38 #, no-wrap msgid "B<#include Eshadow.hE>\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:18 #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:20 #, no-wrap msgid "B\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:22 #, no-wrap msgid "B\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:24 #, no-wrap msgid "B\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:26 #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:28 #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:30 #, no-wrap msgid "BI

B<, FILE *>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:32 #, no-wrap msgid "B\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:34 #, no-wrap msgid "B\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:36 #, no-wrap msgid "/* GNU extension */\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:40 #, no-wrap msgid "BIB<,>\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:42 build/C/man3/getspnam.3:46 build/C/man3/getspnam.3:50 build/C/man3/getspnam.3:54 #, no-wrap msgid "" "B< char *>IB<, size_t >IB<, struct spwd " "**>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:44 #, no-wrap msgid "BIB<, struct spwd *>IB<,>\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:48 #, no-wrap msgid "BIB<, struct spwd *>IB<,>\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:52 #, no-wrap msgid "BIB<, struct spwd *>IB<,>\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:66 msgid "B(), B(), B(), B():" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:68 msgid "_BSD_SOURCE || _SVID_SOURCE" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:82 msgid "" "Long ago it was considered safe to have encrypted passwords openly visible " "in the password file. When computers got faster and people got more " "security-conscious, this was no longer acceptable. Julianne Frances Haugh " "implemented the shadow password suite that keeps the encrypted passwords in " "the shadow password database (e.g., the local shadow password file " "I, NIS, and LDAP), readable only by root." msgstr "" #. 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. #. (Jul 2005, mtk) # #. This shadow password setup has been superseded by PAM #. (pluggable authentication modules), and the file #. .I /etc/nsswitch.conf #. now describes the sources to be used. #. type: Plain text #: build/C/man3/getspnam.3:99 msgid "" "The functions described below resemble those for the traditional password " "database (e.g., see B(3) and B(3))." msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:106 msgid "" "The B() function returns a pointer to a structure containing the " "broken-out fields of the record in the shadow password database that matches " "the username I." msgstr "" #. some systems require a call of setspent() before the first getspent() #. glibc does not #. type: Plain text #: build/C/man3/getspnam.3:118 msgid "" "The B() function returns a pointer to the next entry in the " "shadow password database. The position in the input stream is initialized " "by B(). When done reading, the program may call B() so " "that resources can be deallocated." msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:125 msgid "" "The B() function is similar to B() but uses the " "supplied stream instead of the one implicitly opened by B()." msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:132 msgid "" "The B() function parses the supplied string I into a struct " "I." msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:142 msgid "" "The B() function writes the contents of the supplied struct " "I I<*p> as a text line in the shadow password file format to the " "stream I. String entries with value NULL and numerical entries with " "value -1 are written as an empty string." msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:157 msgid "" "The B() function is intended to protect against multiple " "simultaneous accesses of the shadow password database. It tries to acquire " "a lock, and returns 0 on success, or -1 on failure (lock not obtained within " "15 seconds). The B() function releases the lock again. Note " "that there is no protection against direct access of the shadow password " "file. Only programs that use B() will notice the lock." msgstr "" #. Also in libc5 #. SUN doesn't have sgetspent() #. type: Plain text #: build/C/man3/getspnam.3:162 msgid "" "These were the functions that formed the original shadow API. They are " "widely available." msgstr "" #. type: SS #: build/C/man3/getspnam.3:162 #, no-wrap msgid "Reentrant versions" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:179 msgid "" "Analogous to the reentrant functions for the password database, glibc also " "has reentrant functions for the shadow password database. The " "B() function is like B() but stores the retrieved " "shadow password structure in the space pointed to by I. This shadow " "password structure contains pointers to strings, and these strings are " "stored in the buffer I of size I. A pointer to the result (in " "case of success) or NULL (in case no entry was found or an error occurred) " "is stored in I<*spbufp>." msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:186 msgid "" "The functions B(), B(), and B() are " "similarly analogous to their nonreentrant counterparts." msgstr "" #. SUN doesn't have sgetspent_r() #. type: Plain text #: build/C/man3/getspnam.3:190 msgid "" "Some non-glibc systems also have functions with these names, often with " "different prototypes." msgstr "" #. type: SS #: build/C/man3/getspnam.3:190 #, no-wrap msgid "Structure" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:192 msgid "" "The shadow password structure is defined in Ishadow.hE> as " "follows:" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:210 #, no-wrap msgid "" "struct spwd {\n" " char *sp_namp; /* Login name */\n" " char *sp_pwdp; /* Encrypted password */\n" " long sp_lstchg; /* Date of last change (measured\n" " in days since 1970-01-01 00:00:00 +0000 (UTC)) " "*/\n" " long sp_min; /* Min # of days between changes */\n" " long sp_max; /* Max # of days between changes */\n" " long sp_warn; /* # of days before password expires\n" " to warn user to change it */\n" " long sp_inact; /* # of days after password expires\n" " until account is disabled */\n" " long sp_expire; /* Date when account expires (measured\n" " in days since 1970-01-01 00:00:00 +0000 (UTC)) " "*/\n" " unsigned long sp_flag; /* Reserved */\n" "};\n" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:217 msgid "" "The functions that return a pointer return NULL if no more entries are " "available or if an error occurs during processing. The functions which have " "I as the return value return 0 for success and -1 for failure." msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:220 msgid "" "For the nonreentrant functions, the return value may point to static area, " "and may be overwritten by subsequent calls to these functions." msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:223 msgid "" "The reentrant functions return zero on success. In case of error, an error " "number is returned." msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:227 msgid "Supplied buffer is too small." msgstr "" #. type: TP #: build/C/man3/getspnam.3:228 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:231 msgid "local shadow password database file" msgstr "" #. type: TP #: build/C/man3/getspnam.3:231 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:234 msgid "lock file" msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:240 msgid "" "The include file Ipaths.hE> defines the constant B<_PATH_SHADOW> " "to the pathname of the shadow password file." msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:244 msgid "" "The shadow password database and its associated API are not specified in " "POSIX.1-2001. However, many other systems provide a similar API." msgstr "" #. type: Plain text #: build/C/man3/getspnam.3:249 msgid "B(3), B(3), B(3), B(5)" msgstr "" #. type: TH #: build/C/man5/group.5:25 #, no-wrap msgid "GROUP" msgstr "" #. type: Plain text #: build/C/man5/group.5:28 msgid "group - user group file" msgstr "" #. type: Plain text #: build/C/man5/group.5:33 msgid "" "The I file is a text file that defines the groups on the " "system. There is one entry per line, with the following format:" msgstr "" #. type: Plain text #: build/C/man5/group.5:36 msgid "group_name:password:GID:user_list" msgstr "" #. type: Plain text #: build/C/man5/group.5:39 msgid "The fields are as follows:" msgstr "" #. type: TP #: build/C/man5/group.5:39 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man5/group.5:42 msgid "the name of the group." msgstr "" #. type: TP #: build/C/man5/group.5:42 build/C/man5/passwd.5:75 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man5/group.5:46 msgid "" "the (encrypted) group password. If this field is empty, no password is " "needed." msgstr "" #. type: TP #: build/C/man5/group.5:46 build/C/man5/passwd.5:84 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man5/group.5:49 msgid "the numeric group ID." msgstr "" #. type: TP #: build/C/man5/group.5:49 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man5/group.5:52 msgid "a list of the usernames that are members of this group, separated by commas." msgstr "" #. type: Plain text #: build/C/man5/group.5:54 msgid "/etc/group" msgstr "" #. type: Plain text #: build/C/man5/group.5:60 msgid "" "As the 4.2BSD B(3) man page says: No-one seems to keep " "I up-to-date." msgstr "" #. type: Plain text #: build/C/man5/group.5:66 msgid "B(1), B(1), B(3), B(3), B(5)" msgstr "" #. type: TH #: build/C/man3/initgroups.3:30 #, no-wrap msgid "INITGROUPS" msgstr "" #. type: TH #: build/C/man3/initgroups.3:30 build/C/man3/putpwent.3:28 #, no-wrap msgid "2007-07-26" msgstr "" #. type: Plain text #: build/C/man3/initgroups.3:33 msgid "initgroups - initialize the supplementary group access list" msgstr "" #. type: Plain text #: build/C/man3/initgroups.3:39 #, no-wrap msgid "BIB<, gid_t >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/initgroups.3:48 msgid "B(): _BSD_SOURCE" msgstr "" #. type: Plain text #: build/C/man3/initgroups.3:56 msgid "" "The B() function initializes the group access list by reading " "the group database I and using all groups of which I is a " "member. The additional group I is also added to the list." msgstr "" #. type: Plain text #: build/C/man3/initgroups.3:60 msgid "The I argument must be non-NULL." msgstr "" #. type: Plain text #: build/C/man3/initgroups.3:67 msgid "" "The B() function returns 0 on success. On error, -1 is " "returned, and I is set appropriately." msgstr "" #. type: Plain text #: build/C/man3/initgroups.3:71 msgid "Insufficient memory to allocate group information structure." msgstr "" #. type: TP #: build/C/man3/initgroups.3:71 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man3/initgroups.3:76 msgid "" "The calling process has insufficient privilege. See the underlying system " "call B(2)." msgstr "" #. type: Plain text #: build/C/man3/initgroups.3:79 #, no-wrap msgid "I\t\tgroup database file\n" msgstr "" #. type: Plain text #: build/C/man3/initgroups.3:82 msgid "SVr4, 4.3BSD." msgstr "" #. type: Plain text #: build/C/man3/initgroups.3:86 msgid "B(2), B(2), B(7)" msgstr "" #. type: TH #: build/C/man5/passwd.5:29 #, no-wrap msgid "PASSWD" msgstr "" #. type: TH #: build/C/man5/passwd.5:29 #, no-wrap msgid "2012-02-14" msgstr "" #. type: Plain text #: build/C/man5/passwd.5:32 msgid "passwd - password file" msgstr "" #. type: Plain text #: build/C/man5/passwd.5:40 msgid "" "The I file is a text file that describes user login accounts " "for the system. It should have read permission allowed for all users (many " "utilities, like B(1) use it to map user IDs to usernames), but write " "access only for the superuser." msgstr "" #. type: Plain text #: build/C/man5/passwd.5:52 msgid "" "In the good old days there was no great problem with this general read " "permission. Everybody could read the encrypted passwords, but the hardware " "was too slow to crack a well-chosen password, and moreover the basic " "assumption used to be that of a friendly user-community. These days many " "people run some version of the shadow password suite, where I " "has an \\(aqx\\(aq character in the password field, and the encrypted " "passwords are in I, which is readable by the superuser only." msgstr "" #. type: Plain text #: build/C/man5/passwd.5:58 msgid "" "Regardless of whether shadow passwords are used, many system administrators " "use an asterisk (*) in the encrypted password field to make sure that this " "user can not authenticate him- or herself using a password. (But see NOTES " "below.)" msgstr "" #. type: Plain text #: build/C/man5/passwd.5:63 msgid "" "If you create a new login, first put an asterisk (*) in the password field, " "then use B(1) to set it." msgstr "" #. type: Plain text #: build/C/man5/passwd.5:65 msgid "Each line of the file describes a single user, and has the following format:" msgstr "" #. type: Plain text #: build/C/man5/passwd.5:68 msgid "account:password:UID:GID:GECOS:directory:shell" msgstr "" #. type: Plain text #: build/C/man5/passwd.5:71 msgid "The field are as follows:" msgstr "" #. type: TP #: build/C/man5/passwd.5:71 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man5/passwd.5:75 msgid "the name of the user on the system. It should not contain capital letters." msgstr "" #. type: Plain text #: build/C/man5/passwd.5:81 msgid "" "the encrypted user password, an asterisk (*), or the letter \\(aqx\\(aq. " "(See B(8) for an explanation of \\(aqx\\(aq.)" msgstr "" #. type: TP #: build/C/man5/passwd.5:81 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man5/passwd.5:84 msgid "the numeric user ID." msgstr "" #. type: Plain text #: build/C/man5/passwd.5:87 msgid "the numeric primary group ID for this user." msgstr "" #. type: TP #: build/C/man5/passwd.5:87 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man5/passwd.5:99 msgid "" "This field is optional and used only for informational purposes. Usually, " "it contains the full username. GECOS stands for \"General Electric " "Comprehensive Operating System\", which was renamed to GCOS when GE's large " "systems division was sold to Honeywell. Dennis Ritchie has reported: " "\"Sometimes we sent printer output or batch jobs to the GCOS machine. The " "gcos field in the password file was a place to stash the information for the " "$IDENTcard. Not elegant.\"" msgstr "" #. type: TP #: build/C/man5/passwd.5:99 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man5/passwd.5:104 msgid "the user's B<$HOME> directory." msgstr "" #. type: TP #: build/C/man5/passwd.5:104 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man5/passwd.5:111 msgid "" "the program to run at login (if empty, use I). If set to a " "nonexistent executable, the user will be unable to login through " "B(1)." msgstr "" #. type: Plain text #: build/C/man5/passwd.5:117 msgid "" "If you want to create user groups, there must be an entry in I, " "or no group will exist." msgstr "" #. type: Plain text #: build/C/man5/passwd.5:131 msgid "" "If the encrypted password is set to an asterisk (*), the user will be unable " "to login using B(1), but may still login using B(1), run " "existing processes and initiate new ones through B(1), B(8), " "B(1), or mail filters, etc. Trying to lock an account by simply " "changing the shell field yields the same result and additionally allows the " "use of B(1)." msgstr "" #. type: Plain text #: build/C/man5/passwd.5:139 msgid "" "B(1), B(1), B(1), B(3), B(3), " "B(5), B(5)" msgstr "" #. type: TH #: build/C/man3/putgrent.3:4 #, no-wrap msgid "PUTGRENT" msgstr "" #. type: TH #: build/C/man3/putgrent.3:4 build/C/man3/setaliasent.3:6 #, no-wrap msgid "2003-09-09" msgstr "" #. type: Plain text #: build/C/man3/putgrent.3:7 msgid "putgrent - write a group database entry to a file" msgstr "" #. type: Plain text #: build/C/man3/putgrent.3:9 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */" msgstr "" #. type: Plain text #: build/C/man3/putgrent.3:13 msgid "BIB<, FILE *>IB<);>" msgstr "" #. type: Plain text #: build/C/man3/putgrent.3:22 msgid "" "The B() function is the counterpart for B(3). The " "function writes the content of the provided I into the file " "pointed to by I. The list of group members must be NULL-terminated or " "NULL-initialized." msgstr "" #. type: Plain text #: build/C/man3/putgrent.3:24 msgid "The I is defined as follows:" msgstr "" #. type: Plain text #: build/C/man3/putgrent.3:33 #, no-wrap msgid "" "struct group {\n" " char *gr_name; /* group name */\n" " char *gr_passwd; /* group password */\n" " gid_t gr_gid; /* group ID */\n" " char **gr_mem; /* group members */\n" "};\n" msgstr "" #. type: Plain text #: build/C/man3/putgrent.3:37 msgid "The function returns zero on success, and a nonzero value on error." msgstr "" #. type: Plain text #: build/C/man3/putgrent.3:39 msgid "This function is a GNU extension." msgstr "" #. type: Plain text #: build/C/man3/putgrent.3:43 msgid "B(3), B(3), B(5)" msgstr "" #. type: TH #: build/C/man3/putpwent.3:28 #, no-wrap msgid "PUTPWENT" msgstr "" #. type: Plain text #: build/C/man3/putpwent.3:31 msgid "putpwent - write a password file entry" msgstr "" #. type: Plain text #: build/C/man3/putpwent.3:38 #, no-wrap msgid "BI

B<, FILE *>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man3/putpwent.3:47 msgid "B(): _SVID_SOURCE" msgstr "" #. type: Plain text #: build/C/man3/putpwent.3:52 msgid "" "The B() function writes a password entry from the structure I

" "in the file associated with I." msgstr "" #. type: Plain text #: build/C/man3/putpwent.3:66 #, no-wrap msgid "" "struct passwd {\n" " char *pw_name; /* username */\n" " char *pw_passwd; /* user password */\n" " uid_t pw_uid; /* user ID */\n" " gid_t pw_gid; /* group ID */\n" " char *pw_gecos; /* real name */\n" " char *pw_dir; /* home directory */\n" " char *pw_shell; /* shell program */\n" "};\n" msgstr "" #. type: Plain text #: build/C/man3/putpwent.3:73 msgid "The B() function returns 0 on success, or -1 if an error occurs." msgstr "" #. type: Plain text #: build/C/man3/putpwent.3:77 msgid "Invalid (NULL) argument given." msgstr "" #. type: Plain text #: build/C/man3/putpwent.3:87 msgid "" "B(3), B(3), B(3), B(3), " "B(3), B(3), B(3)" msgstr "" #. type: TH #: build/C/man3/setaliasent.3:6 #, no-wrap msgid "SETALIASENT" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:10 msgid "" "setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname, " "getaliasbyname_r - read an alias entry" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:12 msgid "B<#include Ealiases.hE>" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:14 msgid "B" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:16 msgid "B" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:18 msgid "B" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:20 msgid "BIB<,>" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:22 build/C/man3/setaliasent.3:28 msgid "B< char *>IB<, size_t >IB<, struct aliasent **>IB<);>" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:24 msgid "BIB<);>" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:26 msgid "" "BIB<, struct aliasent " "*>IB<,>" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:33 msgid "" "One of the databases available with the Name Service Switch (NSS) is the " "aliases database, that contains mail aliases. (To find out which databases " "are supported, try I.) Six functions are provided to access " "the aliases database." msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:40 msgid "" "The B() function returns a pointer to a structure containing " "the group information from the aliases database. The first time it is " "called it returns the first entry; thereafter, it returns successive " "entries." msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:45 msgid "" "The B() function rewinds the file pointer to the beginning of " "the aliases database." msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:49 msgid "The B() function closes the aliases database." msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:56 msgid "" "B() is the reentrant version of the previous function. The " "requested structure is stored via the first argument but the programmer " "needs to fill the other arguments also. Not providing enough space causes " "the function to fail." msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:62 msgid "" "The function B() takes the name argument and searches the " "aliases database. The entry is returned as a pointer to a I." msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:69 msgid "" "B() is the reentrant version of the previous function. " "The requested structure is stored via the second argument but the programmer " "needs to fill the other arguments also. Not providing enough space causes " "the function to fail." msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:74 msgid "The I is defined in Ialiases.hE>:" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:83 #, no-wrap msgid "" "struct aliasent {\n" " char *alias_name; /* alias name */\n" " size_t alias_members_len;\n" " char **alias_members; /* alias name list */\n" " int alias_local;\n" "};\n" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:91 msgid "" "The functions B() and B() return a " "nonzero value on error." msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:97 msgid "" "The default alias database is the file I. This can be changed " "in the I file." msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:100 msgid "These routines are glibc-specific. The NeXT system has similar routines:" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:104 #, no-wrap msgid "#include Ealiasdb.hE\n" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:109 #, no-wrap msgid "" "void alias_setent(void);\n" "void alias_endent(void);\n" "alias_ent *alias_getent(void);\n" "alias_ent *alias_getbyname(char *name);\n" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:115 msgid "" "The following example compiles with I. It will " "dump all names in the alias database." msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:121 #, no-wrap msgid "" "#include Ealiases.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Eerrno.hE\n" msgstr "" #. type: Plain text #: build/C/man3/setaliasent.3:140 #, no-wrap msgid "" "int\n" "main(void)\n" "{\n" " struct aliasent *al;\n" " setaliasent();\n" " for (;;) {\n" " al = getaliasent();\n" " if (al == NULL)\n" " break;\n" " printf(\"Name: %s\\en\", al-Ealias_name);\n" " }\n" " if (errno) {\n" " perror(\"reading alias\");\n" " exit(EXIT_FAILURE);\n" " }\n" " endaliasent();\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" # #. /etc/sendmail/aliases #. Yellow Pages #. newaliases, postalias #. type: Plain text #: build/C/man3/setaliasent.3:150 msgid "B(3), B(3), B(3), B(5)" msgstr ""