[BACK]Return to pwd.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / include

Annotation of src/include/pwd.h, Revision 1.22.2.3

1.22.2.3! nathanw     1: /*     $NetBSD: pwd.h,v 1.22.2.2 2002/01/28 21:27:19 nathanw Exp $     */
1.6       cgd         2:
1.4       cgd         3: /*-
                      4:  * Copyright (c) 1989, 1993
                      5:  *     The Regents of the University of California.  All rights reserved.
                      6:  * (c) UNIX System Laboratories, Inc.
                      7:  * All or some portions of this file are derived from material licensed
                      8:  * to the University of California by American Telephone and Telegraph
                      9:  * Co. or Unix System Laboratories, Inc. and are reproduced herein with
                     10:  * the permission of UNIX System Laboratories, Inc.
1.8       phil       11:  * Portions Copyright(C) 1995, Jason Downs.  All rights reserved.
1.4       cgd        12:  *
                     13:  * Redistribution and use in source and binary forms, with or without
                     14:  * modification, are permitted provided that the following conditions
                     15:  * are met:
                     16:  * 1. Redistributions of source code must retain the above copyright
                     17:  *    notice, this list of conditions and the following disclaimer.
                     18:  * 2. Redistributions in binary form must reproduce the above copyright
                     19:  *    notice, this list of conditions and the following disclaimer in the
                     20:  *    documentation and/or other materials provided with the distribution.
                     21:  * 3. All advertising materials mentioning features or use of this software
                     22:  *    must display the following acknowledgement:
                     23:  *     This product includes software developed by the University of
                     24:  *     California, Berkeley and its contributors.
                     25:  * 4. Neither the name of the University nor the names of its contributors
                     26:  *    may be used to endorse or promote products derived from this software
                     27:  *    without specific prior written permission.
                     28:  *
                     29:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     30:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     31:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     32:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     33:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     34:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     35:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     36:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     37:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     38:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     39:  * SUCH DAMAGE.
                     40:  *
1.6       cgd        41:  *     @(#)pwd.h       8.2 (Berkeley) 1/21/94
1.4       cgd        42:  */
                     43:
                     44: #ifndef _PWD_H_
                     45: #define        _PWD_H_
                     46:
1.16      mycroft    47: #include <sys/cdefs.h>
1.12      kleink     48: #include <sys/featuretest.h>
1.4       cgd        49: #include <sys/types.h>
                     50:
1.12      kleink     51: #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
1.4       cgd        52: #define        _PATH_PASSWD            "/etc/passwd"
                     53: #define        _PATH_MASTERPASSWD      "/etc/master.passwd"
1.9       jtc        54: #define        _PATH_MASTERPASSWD_LOCK "/etc/ptmp"
1.22.2.1  nathanw    55:
                     56: #define        _PATH_PASSWD_CONF       "/etc/passwd.conf"
                     57: #define        _PATH_PASSWDCONF        _PATH_PASSWD_CONF       /* XXX: compat */
                     58: #define        _PATH_USERMGMT_CONF     "/etc/usermgmt.conf"
1.4       cgd        59:
                     60: #define        _PATH_MP_DB             "/etc/pwd.db"
                     61: #define        _PATH_SMP_DB            "/etc/spwd.db"
                     62:
                     63: #define        _PATH_PWD_MKDB          "/usr/sbin/pwd_mkdb"
                     64:
                     65: #define        _PW_KEYBYNAME           '1'     /* stored by name */
                     66: #define        _PW_KEYBYNUM            '2'     /* stored by entry in the "file" */
                     67: #define        _PW_KEYBYUID            '3'     /* stored by uid */
                     68:
1.22      ad         69: #define        _PASSWORD_EFMT1         '_'     /* extended DES encryption format */
1.21      ad         70: #define        _PASSWORD_NONDES        '$'     /* non-DES encryption formats */
1.4       cgd        71:
1.20      kleink     72: #define        _PASSWORD_LEN           128     /* max length, not counting NUL */
1.8       phil       73:
                     74: #define _PASSWORD_NOUID                0x01    /* flag for no specified uid. */
                     75: #define _PASSWORD_NOGID                0x02    /* flag for no specified gid. */
                     76: #define _PASSWORD_NOCHG                0x04    /* flag for no specified change. */
                     77: #define _PASSWORD_NOEXP                0x08    /* flag for no specified expire. */
                     78:
1.13      lukem      79: #define _PASSWORD_OLDFMT       0x10    /* flag to expect an old style entry */
                     80: #define _PASSWORD_NOWARN       0x20    /* no warnings for bad entries */
                     81:
1.10      lukem      82: #define _PASSWORD_WARNDAYS     14      /* days to warn about expiry */
1.11      lukem      83: #define _PASSWORD_CHGNOW       -1      /* special day to force password
                     84:                                         * change at next login */
1.4       cgd        85: #endif
                     86:
                     87: struct passwd {
1.16      mycroft    88:        __aconst char *pw_name;         /* user name */
                     89:        __aconst char *pw_passwd;       /* encrypted password */
1.15      mycroft    90:        uid_t       pw_uid;             /* user uid */
                     91:        gid_t       pw_gid;             /* user gid */
                     92:        time_t      pw_change;          /* password change time */
1.16      mycroft    93:        __aconst char *pw_class;        /* user access class */
                     94:        __aconst char *pw_gecos;        /* Honeywell login info */
                     95:        __aconst char *pw_dir;          /* home directory */
                     96:        __aconst char *pw_shell;        /* default shell */
1.15      mycroft    97:        time_t      pw_expire;          /* account expiration */
1.4       cgd        98: };
                     99:
                    100: __BEGIN_DECLS
                    101: struct passwd  *getpwuid __P((uid_t));
                    102: struct passwd  *getpwnam __P((const char *));
1.12      kleink    103: #if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
1.4       cgd       104: struct passwd  *getpwent __P((void));
1.12      kleink    105: void            setpwent __P((void));
                    106: void            endpwent __P((void));
1.22.2.3! nathanw   107: char           *bcrypt_gensalt(u_int8_t);
1.12      kleink    108: #endif
                    109: #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
1.13      lukem     110: int             pw_scan __P((char *bp, struct passwd *pw, int *flags));
1.4       cgd       111: int             setpassent __P((int));
1.19      mycroft   112: const char     *user_from_uid __P((uid_t, int));
                    113: int             uid_from_user __P((const char *, uid_t *));
1.22.2.2  nathanw   114: int             pwcache_userdb __P((int (*)(int), void (*)(void),
                    115:                                    struct passwd * (*)(const char *),
                    116:                                    struct passwd * (*)(uid_t)));
1.4       cgd       117: #endif
                    118: __END_DECLS
                    119:
                    120: #endif /* !_PWD_H_ */

CVSweb <webmaster@jp.NetBSD.org>