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