Project

General

Profile

Feature #3243 » illumos-3243-getent-shadow.patch

manpage patched - Igor Pashev, 2012-10-03 08:44 PM

View differences:

libc/illumos-gate/usr/src/cmd/getent/getent.c 2012-10-03 22:48:54.412674705 +0400
42 42

  
43 43
static struct table t[] = {
44 44
	{ "passwd",	dogetpw },
45
	{ "shadow",	dogetsp },
45 46
	{ "group",	dogetgr },
46 47
	{ "hosts",	dogethost },
47 48
	{ "ipnodes",	dogetipnodes },
libc/illumos-gate/usr/src/cmd/getent/Makefile 2012-10-03 22:48:54.413606711 +0400
41 41
	dogetproject.o	\
42 42
	dogetproto.o	\
43 43
	dogetpw.o	\
44
	dogetsp.o	\
44 45
	dogetserv.o	\
45 46
	getent.o
46 47

  
libc/illumos-gate/usr/src/cmd/getent/dogetsp.c 2012-10-03 22:48:54.414547652 +0400
1
/*
2
 * CDDL HEADER START
3
 *
4
 * The contents of this file are subject to the terms of the
5
 * Common Development and Distribution License (the "License").
6
 * You may not use this file except in compliance with the License.
7
 *
8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9
 * or http://www.opensolaris.org/os/licensing.
10
 * See the License for the specific language governing permissions
11
 * and limitations under the License.
12
 *
13
 * When distributing Covered Code, include this CDDL HEADER in each
14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15
 * If applicable, add the following below this CDDL HEADER, with the
16
 * fields enclosed by brackets "[]" replaced with your own identifying
17
 * information: Portions Copyright [yyyy] [name of copyright owner]
18
 *
19
 * CDDL HEADER END
20
 */
21

  
22
/*
23
 * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
24
 * Copyright 2012 Nexenta Systems, Inc. All rights reserved.
25
 * Use is subject to license terms.
26
 */
27

  
28
#include <stdio.h>
29
#include <pwd.h>
30
#include <shadow.h>
31
#include <stdlib.h>
32
#include <errno.h>
33
#include "getent.h"
34

  
35
/*
36
 * getspnam - get entries from shadow database
37
 */
38
int
39
dogetsp(const char **list)
40
{
41
	struct spwd *sp;
42
	int rc = EXC_SUCCESS;
43
	char *ptr;
44
	uid_t uid;
45

  
46

  
47
	if (list == NULL || *list == NULL) {
48
		setspent();
49
		while ((sp = getspent()) != NULL)
50
			(void) putspent(sp, stdout);
51
		endspent();
52
	} else {
53
		for (; *list != NULL; list++) {
54
            sp = getspnam(*list);
55
			if (sp == NULL)
56
				rc = EXC_NAME_NOT_FOUND;
57
			else
58
				(void) putspent(sp, stdout);
59
		}
60
	}
61

  
62
	return (rc);
63
}
libc/illumos-gate/usr/src/cmd/getent/getent.h 2012-10-03 22:48:54.415441373 +0400
42 42
#define	EXC_ENUM_NOT_SUPPORTED	3
43 43

  
44 44
extern int dogetpw(const char **);
45
extern int dogetsp(const char **);
45 46
extern int dogetgr(const char **);
46 47
extern int dogethost(const char **);
47 48
extern int dogetipnodes(const char **);
libc/illumos-gate/usr/src/man/man1m/getent.1m 2012-10-04 00:55:38.283472015 +0400
21 21
.sp
22 22
.LP
23 23
\fIdatabase\fR is the name of the database to be examined. This can be
24
\fBpasswd\fR, \fBgroup\fR, \fBhosts\fR, \fBipnodes\fR, \fBservices\fR,
24
\fBpasswd\fR, \fBshadow\fR, \fBgroup\fR, \fBhosts\fR, \fBipnodes\fR, \fBservices\fR,
25 25
\fBprotocols\fR, \fBethers\fR, \fBproject\fR, \fBnetworks\fR, or
26 26
\fBnetmasks\fR. For each of these databases, \fBgetent\fR uses the appropriate
27
library routines described in \fBgetpwnam\fR(3C), \fBgetgrnam\fR(3C),
27
library routines described in \fBgetpwnam\fR(3C), \fBgetspnam\fR(3C), \fBgetgrnam\fR(3C),
28 28
\fBgethostbyaddr\fR(3NSL), \fBgethostbyname\fR(3NSL),
29 29
\fBgetipnodebyaddr\fR(3SOCKET), \fBgetipnodebyname\fR(3SOCKET),
30 30
\fBgetservbyname\fR(3SOCKET), \fBgetprotobyname\fR(3SOCKET),
......
41 41
.LP
42 42
\fBgetent\fR prints out the database entries that match each of the supplied
43 43
keys, one per line, in the format of the matching administrative file:
44
\fBpasswd\fR(4), \fBgroup\fR(4), \fBproject\fR(4), \fBhosts\fR(4),
44
\fBpasswd\fR(4), \fBshadow\fR(4), \fBgroup\fR(4), \fBproject\fR(4), \fBhosts\fR(4),
45 45
\fBservices\fR(4), \fBprotocols\fR(4), \fBethers\fR(3SOCKET),
46 46
\fBnetworks\fR(4), or \fBnetmasks\fR(4). If no key is given, all entries
47 47
returned by the corresponding enumeration library routine, for example,
......
149 149
.RE
150 150

  
151 151
.sp
152
.ne 2
153
.na
154
\fB\fB/etc/shadow\fR\fR
155
.ad
156
.RS 22n
157
shadowed password file
158
.RE
159

  
160
.sp
152 161
.ne 2
153 162
.na
154 163
\fB\fB/etc/group\fR\fR
(2-2/2)