xref: /freebsd/sys/fs/nfs/nfsid.h (revision 53b4ae3bf0f7e625d51fa263a5bd3859792d61e3)
1e6db4dd9SRick Macklem /*-
2e6db4dd9SRick Macklem  * SPDX-License-Identifier: BSD-3-Clause
3e6db4dd9SRick Macklem  *
4e6db4dd9SRick Macklem  * Copyright (c) 1989, 1993
5e6db4dd9SRick Macklem  *	The Regents of the University of California.  All rights reserved.
6e6db4dd9SRick Macklem  *
7e6db4dd9SRick Macklem  * This code is derived from software contributed to Berkeley by
8e6db4dd9SRick Macklem  * Rick Macklem at The University of Guelph.
9e6db4dd9SRick Macklem  *
10e6db4dd9SRick Macklem  * Redistribution and use in source and binary forms, with or without
11e6db4dd9SRick Macklem  * modification, are permitted provided that the following conditions
12e6db4dd9SRick Macklem  * are met:
13e6db4dd9SRick Macklem  * 1. Redistributions of source code must retain the above copyright
14e6db4dd9SRick Macklem  *    notice, this list of conditions and the following disclaimer.
15e6db4dd9SRick Macklem  * 2. Redistributions in binary form must reproduce the above copyright
16e6db4dd9SRick Macklem  *    notice, this list of conditions and the following disclaimer in the
17e6db4dd9SRick Macklem  *    documentation and/or other materials provided with the distribution.
18e6db4dd9SRick Macklem  * 3. Neither the name of the University nor the names of its contributors
19e6db4dd9SRick Macklem  *    may be used to endorse or promote products derived from this software
20e6db4dd9SRick Macklem  *    without specific prior written permission.
21e6db4dd9SRick Macklem  *
22e6db4dd9SRick Macklem  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23e6db4dd9SRick Macklem  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24e6db4dd9SRick Macklem  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25e6db4dd9SRick Macklem  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26e6db4dd9SRick Macklem  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27e6db4dd9SRick Macklem  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28e6db4dd9SRick Macklem  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29e6db4dd9SRick Macklem  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30e6db4dd9SRick Macklem  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31e6db4dd9SRick Macklem  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32e6db4dd9SRick Macklem  * SUCH DAMAGE.
33e6db4dd9SRick Macklem  */
34e6db4dd9SRick Macklem 
35e6db4dd9SRick Macklem #ifndef _NFS_NFSID_H_
36e6db4dd9SRick Macklem #define	_NFS_NFSID_H_
37e6db4dd9SRick Macklem 
38e6db4dd9SRick Macklem /* Definitions for id<-->name mapping. */
39e6db4dd9SRick Macklem struct nfsd_idargs {
40e6db4dd9SRick Macklem 	int		nid_flag;	/* Flags (see below) */
41e6db4dd9SRick Macklem 	uid_t		nid_uid;	/* user/group id */
42e6db4dd9SRick Macklem 	gid_t		nid_gid;
43e6db4dd9SRick Macklem 	int		nid_usermax;	/* Upper bound on user name cache */
44e6db4dd9SRick Macklem 	int		nid_usertimeout;/* User name timeout (minutes) */
45e6db4dd9SRick Macklem 	u_char		*nid_name;	/* Name */
46e6db4dd9SRick Macklem 	int		nid_namelen;	/* and its length */
47e6db4dd9SRick Macklem 	gid_t		*nid_grps;	/* and the list */
48e6db4dd9SRick Macklem 	int		nid_ngroup;	/* Size of groups list */
49e6db4dd9SRick Macklem };
50e6db4dd9SRick Macklem 
51e6db4dd9SRick Macklem /* And bits for nid_flag */
52e6db4dd9SRick Macklem #define	NFSID_INITIALIZE	0x0001
53e6db4dd9SRick Macklem #define	NFSID_ADDUID		0x0002
54e6db4dd9SRick Macklem #define	NFSID_DELUID		0x0004
55e6db4dd9SRick Macklem #define	NFSID_ADDUSERNAME	0x0008
56e6db4dd9SRick Macklem #define	NFSID_DELUSERNAME	0x0010
57e6db4dd9SRick Macklem #define	NFSID_ADDGID		0x0020
58e6db4dd9SRick Macklem #define	NFSID_DELGID		0x0040
59e6db4dd9SRick Macklem #define	NFSID_ADDGROUPNAME	0x0080
60e6db4dd9SRick Macklem #define	NFSID_DELGROUPNAME	0x0100
61e6db4dd9SRick Macklem #define	NFSID_SYSSPACE		0x0200
62e6db4dd9SRick Macklem 
63e6db4dd9SRick Macklem #if defined(_KERNEL) || defined(KERNEL)
64*53b4ae3bSRick Macklem /*
65*53b4ae3bSRick Macklem  * Define just enough NFSv4 id<-->name mappings to make things work
66*53b4ae3bSRick Macklem  * until the nfsuserd(8) is running.
67*53b4ae3bSRick Macklem  * XXX These name/ids must be kept the same as what is in /etc/passwd
68*53b4ae3bSRick Macklem  *     and /etc/group.
69*53b4ae3bSRick Macklem  */
70*53b4ae3bSRick Macklem struct nfs_prime_userd {
71*53b4ae3bSRick Macklem 	int	flag;
72*53b4ae3bSRick Macklem 	uid_t	uid;
73*53b4ae3bSRick Macklem 	gid_t	gid;
74*53b4ae3bSRick Macklem 	char	*nam;
75*53b4ae3bSRick Macklem };
76*53b4ae3bSRick Macklem 
77e6db4dd9SRick Macklem int nfssvc_idname(struct nfsd_idargs *);
78e6db4dd9SRick Macklem #endif
79e6db4dd9SRick Macklem 
80e6db4dd9SRick Macklem #endif	/* _NFS_NFSID_H */
81