xref: /illumos-gate/usr/src/cmd/idmap/idmapd/idmapd.c (revision fea136a0)
1c5c4113dSnw /*
2c5c4113dSnw  * CDDL HEADER START
3c5c4113dSnw  *
4c5c4113dSnw  * The contents of this file are subject to the terms of the
5c5c4113dSnw  * Common Development and Distribution License (the "License").
6c5c4113dSnw  * You may not use this file except in compliance with the License.
7c5c4113dSnw  *
8c5c4113dSnw  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9c5c4113dSnw  * or http://www.opensolaris.org/os/licensing.
10c5c4113dSnw  * See the License for the specific language governing permissions
11c5c4113dSnw  * and limitations under the License.
12c5c4113dSnw  *
13c5c4113dSnw  * When distributing Covered Code, include this CDDL HEADER in each
14c5c4113dSnw  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15c5c4113dSnw  * If applicable, add the following below this CDDL HEADER, with the
16c5c4113dSnw  * fields enclosed by brackets "[]" replaced with your own identifying
17c5c4113dSnw  * information: Portions Copyright [yyyy] [name of copyright owner]
18c5c4113dSnw  *
19c5c4113dSnw  * CDDL HEADER END
20c5c4113dSnw  */
21c5c4113dSnw /*
22c5866007SKeyur Desai  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
23*fea136a0SMatt Barden  * Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
24c5c4113dSnw  */
25c5c4113dSnw 
26c5c4113dSnw 
27c5c4113dSnw /*
28c5c4113dSnw  * main() of idmapd(1M)
29c5c4113dSnw  */
30c5c4113dSnw 
31c5c4113dSnw #include "idmapd.h"
3271590c90Snw #include <atomic.h>
33c5c4113dSnw #include <signal.h>
34c5c4113dSnw #include <rpc/pmap_clnt.h> /* for pmap_unset */
35c5c4113dSnw #include <string.h> /* strcmp */
36c5c4113dSnw #include <unistd.h> /* setsid */
37c5c4113dSnw #include <sys/types.h>
38c5c4113dSnw #include <memory.h>
39c5c4113dSnw #include <stropts.h>
40c5c4113dSnw #include <netconfig.h>
41c5c4113dSnw #include <sys/resource.h> /* rlimit */
42c5c4113dSnw #include <rpcsvc/daemon_utils.h> /* DAEMON_UID and DAEMON_GID */
43c5c4113dSnw #include <priv_utils.h> /* privileges */
44c5c4113dSnw #include <locale.h>
45c5c4113dSnw #include <sys/systeminfo.h>
46c5c4113dSnw #include <errno.h>
47