Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/usr.bin/chpass/chpass.h
34677 views
1
/*-
2
* SPDX-License-Identifier: BSD-4-Clause
3
*
4
* Copyright (c) 1988, 1993, 1994
5
* The Regents of the University of California. All rights reserved.
6
* Copyright (c) 2002 Networks Associates Technology, Inc.
7
* All rights reserved.
8
*
9
* Portions of this software were developed for the FreeBSD Project by
10
* ThinkSec AS and NAI Labs, the Security Research Division of Network
11
* Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035
12
* ("CBOSS"), as part of the DARPA CHATS research program.
13
*
14
* Redistribution and use in source and binary forms, with or without
15
* modification, are permitted provided that the following conditions
16
* are met:
17
* 1. Redistributions of source code must retain the above copyright
18
* notice, this list of conditions and the following disclaimer.
19
* 2. Redistributions in binary form must reproduce the above copyright
20
* notice, this list of conditions and the following disclaimer in the
21
* documentation and/or other materials provided with the distribution.
22
* 3. All advertising materials mentioning features or use of this software
23
* must display the following acknowledgement:
24
* This product includes software developed by the University of
25
* California, Berkeley and its contributors.
26
* 4. Neither the name of the University nor the names of its contributors
27
* may be used to endorse or promote products derived from this software
28
* without specific prior written permission.
29
*
30
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
31
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
32
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
33
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
34
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
35
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
36
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
37
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
38
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
39
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
40
* SUCH DAMAGE.
41
*/
42
43
struct passwd;
44
45
typedef struct _entry {
46
const char *prompt;
47
int (*func)(char *, struct passwd *, struct _entry *);
48
int restricted;
49
size_t len;
50
const char *except, *save;
51
} ENTRY;
52
53
/* Field numbers. */
54
#define E_BPHONE 8
55
#define E_HPHONE 9
56
#define E_LOCATE 10
57
#define E_NAME 7
58
#define E_OTHER 11
59
#define E_SHELL 13
60
61
extern ENTRY list[];
62
extern int master_mode;
63
64
int atot(char *, time_t *);
65
struct passwd *edit(const char *, struct passwd *);
66
int ok_shell(char *);
67
char *dup_shell(char *);
68
int p_change(char *, struct passwd *, ENTRY *);
69
int p_class(char *, struct passwd *, ENTRY *);
70
int p_expire(char *, struct passwd *, ENTRY *);
71
int p_gecos(char *, struct passwd *, ENTRY *);
72
int p_gid(char *, struct passwd *, ENTRY *);
73
int p_hdir(char *, struct passwd *, ENTRY *);
74
int p_login(char *, struct passwd *, ENTRY *);
75
int p_passwd(char *, struct passwd *, ENTRY *);
76
int p_shell(char *, struct passwd *, ENTRY *);
77
int p_uid(char *, struct passwd *, ENTRY *);
78
char *ttoa(time_t);
79
80