1*bbf21555SRichard Lowe.\" 2*bbf21555SRichard Lowe.\" The contents of this file are subject to the terms of the 3*bbf21555SRichard Lowe.\" Common Development and Distribution License (the "License"). 4*bbf21555SRichard Lowe.\" You may not use this file except in compliance with the License. 5*bbf21555SRichard Lowe.\" 6*bbf21555SRichard Lowe.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7*bbf21555SRichard Lowe.\" or http://www.opensolaris.org/os/licensing. 8*bbf21555SRichard Lowe.\" See the License for the specific language governing permissions 9*bbf21555SRichard Lowe.\" and limitations under the License. 10*bbf21555SRichard Lowe.\" 11*bbf21555SRichard Lowe.\" When distributing Covered Code, include this CDDL HEADER in each 12*bbf21555SRichard Lowe.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE. 13*bbf21555SRichard Lowe.\" If applicable, add the following below this CDDL HEADER, with the 14*bbf21555SRichard Lowe.\" fields enclosed by brackets "[]" replaced with your own identifying 15*bbf21555SRichard Lowe.\" information: Portions Copyright [yyyy] [name of copyright owner] 16*bbf21555SRichard Lowe.\" 17*bbf21555SRichard Lowe.\" 18*bbf21555SRichard Lowe.\" Copyright (C) 1999, Sun Microsystems, Inc. All Rights Reserved 19*bbf21555SRichard Lowe.\" Copyright (c) 2014 Gary Mills 20*bbf21555SRichard Lowe.\" Copyright (c) 2018 Peter Tribble 21*bbf21555SRichard Lowe.\" 22*bbf21555SRichard Lowe.Dd June 17, 2021 23*bbf21555SRichard Lowe.Dt GETENT 8 24*bbf21555SRichard Lowe.Os 25*bbf21555SRichard Lowe.Sh NAME 26*bbf21555SRichard Lowe.Nm getent 27*bbf21555SRichard Lowe.Nd get entries from administrative database 28*bbf21555SRichard Lowe.Sh SYNOPSIS 29*bbf21555SRichard Lowe.Nm 30*bbf21555SRichard Lowe.Ar database 31*bbf21555SRichard Lowe.Oo Ar key Oc Ns ... 32*bbf21555SRichard Lowe.Sh DESCRIPTION 33*bbf21555SRichard Lowe.Nm 34*bbf21555SRichard Lowegets a list of entries from the administrative database specified by 35*bbf21555SRichard Lowe.Ar database . 36*bbf21555SRichard LoweThe information generally comes from one or more of the sources that are 37*bbf21555SRichard Lowespecified for the 38*bbf21555SRichard Lowe.Ar database 39*bbf21555SRichard Lowein 40*bbf21555SRichard Lowe.Pa /etc/nsswitch.conf . 41*bbf21555SRichard Lowe.Pp 42*bbf21555SRichard Lowe.Ar database 43*bbf21555SRichard Loweis the name of the database to be examined. 44*bbf21555SRichard LoweThis can be 45*bbf21555SRichard Lowe.Cm passwd , 46*bbf21555SRichard Lowe.Cm shadow , 47*bbf21555SRichard Lowe.Cm group , 48*bbf21555SRichard Lowe.Cm hosts , 49*bbf21555SRichard Lowe.Cm ipnodes , 50*bbf21555SRichard Lowe.Cm services , 51*bbf21555SRichard Lowe.Cm protocols , 52*bbf21555SRichard Lowe.Cm ethers , 53*bbf21555SRichard Lowe.Cm project , 54*bbf21555SRichard Lowe.Cm networks , 55*bbf21555SRichard Lowe.Cm netmasks , 56*bbf21555SRichard Lowe.Cm auth_attr , 57*bbf21555SRichard Lowe.Cm exec_attr , 58*bbf21555SRichard Lowe.Cm prof_attr , 59*bbf21555SRichard Lowe.Cm user_attr , 60*bbf21555SRichard Loweor 61*bbf21555SRichard Lowe.Cm netgroup . 62*bbf21555SRichard LoweFor each of these databases, 63*bbf21555SRichard Lowe.Nm 64*bbf21555SRichard Loweuses the appropriate library routines described in 65*bbf21555SRichard Lowe.Xr getpwnam 3C , 66*bbf21555SRichard Lowe.Xr getspnam 3C , 67*bbf21555SRichard Lowe.Xr getgrnam 3C , 68*bbf21555SRichard Lowe.Xr getnetgrent 3C , 69*bbf21555SRichard Lowe.Xr gethostbyaddr 3NSL , 70*bbf21555SRichard Lowe.Xr gethostbyname 3NSL , 71*bbf21555SRichard Lowe.Xr getipnodebyaddr 3SOCKET , 72*bbf21555SRichard Lowe.Xr getipnodebyname 3SOCKET , 73*bbf21555SRichard Lowe.Xr getservbyname 3SOCKET , 74*bbf21555SRichard Lowe.Xr getprotobyname 3SOCKET , 75*bbf21555SRichard Lowe.Xr ethers 3SOCKET , 76*bbf21555SRichard Lowe.Xr getprojbyname 3PROJECT , 77*bbf21555SRichard Lowe.Xr getnetbyname 3SOCKET , 78*bbf21555SRichard Lowe.Xr getauthattr 3SECDB , 79*bbf21555SRichard Lowe.Xr getexecattr 3SECDB , 80*bbf21555SRichard Lowe.Xr getprofattr 3SECDB , 81*bbf21555SRichard Loweand 82*bbf21555SRichard Lowe.Xr getuserattr 3SECDB 83*bbf21555SRichard Lowerespectively. 84*bbf21555SRichard Lowe.Pp 85*bbf21555SRichard LoweEach 86*bbf21555SRichard Lowe.Ar key 87*bbf21555SRichard Lowemust be in a format appropriate for searching on the respective database. 88*bbf21555SRichard LoweFor example, it can be a username or numeric-uid for 89*bbf21555SRichard Lowe.Cm passwd ; 90*bbf21555SRichard Lowehostname or IP address for 91*bbf21555SRichard Lowe.Cm hosts ; 92*bbf21555SRichard Loweor service, service/protocol, port, or port/proto for 93*bbf21555SRichard Lowe.Cm services . 94*bbf21555SRichard Lowe.Pp 95*bbf21555SRichard Lowe.Nm 96*bbf21555SRichard Loweprints out the database entries that match each of the supplied keys, one per 97*bbf21555SRichard Loweline, in the format of the matching administrative file: 98*bbf21555SRichard Lowe.Xr passwd 5 , 99*bbf21555SRichard Lowe.Xr shadow 5 , 100*bbf21555SRichard Lowe.Xr group 5 , 101*bbf21555SRichard Lowe.Xr project 5 , 102*bbf21555SRichard Lowe.Xr hosts 5 , 103*bbf21555SRichard Lowe.Xr services 5 , 104*bbf21555SRichard Lowe.Xr protocols 5 , 105*bbf21555SRichard Lowe.Xr ethers 5 , 106*bbf21555SRichard Lowe.Xr netgroup 5 , 107*bbf21555SRichard Lowe.Xr networks 5 , 108*bbf21555SRichard Lowe.Xr netmasks 5 , 109*bbf21555SRichard Lowe.Xr auth_attr 5 , 110*bbf21555SRichard Lowe.Xr exec_attr 5 , 111*bbf21555SRichard Lowe.Xr prof_attr 5 , 112*bbf21555SRichard Loweor 113*bbf21555SRichard Lowe.Xr user_attr 5 . 114*bbf21555SRichard LoweIf no key is given, all entries returned by the corresponding enumeration 115*bbf21555SRichard Lowelibrary routine, for example, 116*bbf21555SRichard Lowe.Xr getpwent 3C 117*bbf21555SRichard Loweor 118*bbf21555SRichard Lowe.Xr gethostent 3NSL , 119*bbf21555SRichard Loweare printed. 120*bbf21555SRichard LoweEnumeration is not supported on 121*bbf21555SRichard Lowe.Cm ipnodes , 122*bbf21555SRichard Lowe.Cm ethers , 123*bbf21555SRichard Lowe.Cm netgroup , 124*bbf21555SRichard Loweor 125*bbf21555SRichard Lowe.Cm netmasks . 126*bbf21555SRichard Lowe.Ss Key Interpretation for passwd, group, netgroup, and user_attr Databases 127*bbf21555SRichard LoweWhen 128*bbf21555SRichard Lowe.Nm 129*bbf21555SRichard Loweis invoked with 130*bbf21555SRichard Lowe.Ar database 131*bbf21555SRichard Loweset to 132*bbf21555SRichard Lowe.Cm passwd , 133*bbf21555SRichard Loweeach key value is processed as follows: 134*bbf21555SRichard Lowe.Bl -bullet 135*bbf21555SRichard Lowe.It 136*bbf21555SRichard LoweIf the key value consists only of numeric characters, 137*bbf21555SRichard Lowe.Nm 138*bbf21555SRichard Loweassumes that the key value is a numeric user ID and searches the 139*bbf21555SRichard Lowe.Cm passwd 140*bbf21555SRichard Lowedatabase for a matching user ID. 141*bbf21555SRichard Lowe.It 142*bbf21555SRichard LoweIf the user ID is not found in the 143*bbf21555SRichard Lowe.Cm passwd 144*bbf21555SRichard Lowedatabase or if the key value contains any non-numeric characters, 145*bbf21555SRichard Lowe.Nm 146*bbf21555SRichard Loweassumes the key value is a user name and searches the 147*bbf21555SRichard Lowe.Cm passwd 148*bbf21555SRichard Lowedatabase for a matching user name. 149*bbf21555SRichard Lowe.El 150*bbf21555SRichard Lowe.Pp 151*bbf21555SRichard LoweWhen 152*bbf21555SRichard Lowe.Nm 153*bbf21555SRichard Loweis invoked with 154*bbf21555SRichard Lowe.Ar database 155*bbf21555SRichard Loweset to 156*bbf21555SRichard Lowe.Cm group , 157*bbf21555SRichard Loweeach key value is processed as follows: 158*bbf21555SRichard Lowe.Bl -bullet 159*bbf21555SRichard Lowe.It 160*bbf21555SRichard LoweIf the key value consists only of numeric characters, 161*bbf21555SRichard Lowe.Nm 162*bbf21555SRichard Loweassumes that the key value is a numeric group ID and searches the 163*bbf21555SRichard Lowe.Cm group 164*bbf21555SRichard Lowedatabase for a matching group ID. 165*bbf21555SRichard Lowe.It 166*bbf21555SRichard LoweIf the group ID is not found in the 167*bbf21555SRichard Lowe.Cm group 168*bbf21555SRichard Lowedatabase or if the key value contains any non-numeric characters, 169*bbf21555SRichard Lowe.Nm 170*bbf21555SRichard Loweassumes the key value is a group name and searches the 171*bbf21555SRichard Lowe.Cm group 172*bbf21555SRichard Lowedatabase for a matching group name. 173*bbf21555SRichard Lowe.El 174*bbf21555SRichard Lowe.Pp 175*bbf21555SRichard LoweWhen 176*bbf21555SRichard Lowe.Nm 177*bbf21555SRichard Loweis invoked with 178*bbf21555SRichard Lowe.Ar database 179*bbf21555SRichard Loweset to 180*bbf21555SRichard Lowe.Cm netgroup , 181*bbf21555SRichard Loweonly a single lookup key is supported, which must be in the following format: 182*bbf21555SRichard Lowe.Bd -ragged -offset Ds 183*bbf21555SRichard Lowe.Ar netgroup Oo Ar host Ar user Ar domain Oc 184*bbf21555SRichard Lowe.Ed 185*bbf21555SRichard Lowe.Pp 186*bbf21555SRichard LoweSpecifying only the 187*bbf21555SRichard Lowe.Ar netgroup 188*bbf21555SRichard Lowename will result in entries from the selected netgroup being displayed as 189*bbf21555SRichard Lowestring triples 190*bbf21555SRichard Lowe.Pq hostname, username, domain , 191*bbf21555SRichard Lowein a format compatible with 192*bbf21555SRichard Lowe.Xr netgroup 5 . 193*bbf21555SRichard Lowe.Pp 194*bbf21555SRichard LoweSpecifying the 195*bbf21555SRichard Lowe.Ar netgroup 196*bbf21555SRichard Lowealong with 197*bbf21555SRichard Lowe.Ar host , 198*bbf21555SRichard Lowe.Ar user 199*bbf21555SRichard Loweand 200*bbf21555SRichard Lowe.Ar domain 201*bbf21555SRichard Lowewill filter the netgroup display based on these entries. 202*bbf21555SRichard LoweAn asterisk 203*bbf21555SRichard Lowe.Pq \&* 204*bbf21555SRichard Lowecan be used as a wildcard for the 205*bbf21555SRichard Lowe.Ar host , 206*bbf21555SRichard Lowe.Ar user 207*bbf21555SRichard Loweor 208*bbf21555SRichard Lowe.Ar domain 209*bbf21555SRichard Lowefields. 210*bbf21555SRichard Lowe.Pp 211*bbf21555SRichard LoweSince the 212*bbf21555SRichard Lowe.Cm netgroup 213*bbf21555SRichard Lowedatabase does not support enumeration, a lookup key must always be specified. 214*bbf21555SRichard Lowe.Pp 215*bbf21555SRichard LoweWhen 216*bbf21555SRichard Lowe.Nm 217*bbf21555SRichard Loweis invoked with 218*bbf21555SRichard Lowe.Ar database 219*bbf21555SRichard Loweset to 220*bbf21555SRichard Lowe.Cm user_attr , 221*bbf21555SRichard Loweeach key value is processed as follows: 222*bbf21555SRichard Lowe.Bl -bullet 223*bbf21555SRichard Lowe.It 224*bbf21555SRichard LoweIf the key value consists only of numeric characters, 225*bbf21555SRichard Lowe.Nm 226*bbf21555SRichard Loweassumes that the key value is a numeric user ID and searches the 227*bbf21555SRichard Lowe.Cm passwd 228*bbf21555SRichard Lowedatabase for a matching user name, which is then used as the key for 229*bbf21555SRichard Lowe.Cm user_attr . 230*bbf21555SRichard Lowe.It 231*bbf21555SRichard LoweIf the user ID is not found in the 232*bbf21555SRichard Lowe.Cm passwd 233*bbf21555SRichard Lowedatabase or if the key value contains any non-numeric characters, 234*bbf21555SRichard Lowe.Nm 235*bbf21555SRichard Loweassumes the key value is a user name and searches the 236*bbf21555SRichard Lowe.Cm user_attr 237*bbf21555SRichard Lowedatabase for a matching entry. 238*bbf21555SRichard Lowe.El 239*bbf21555SRichard Lowe.Sh FILES 240*bbf21555SRichard Lowe.Bl -tag -width Pa 241*bbf21555SRichard Lowe.It Pa /etc/nsswitch.conf 242*bbf21555SRichard Lowename service switch configuration file 243*bbf21555SRichard Lowe.It Pa /etc/passwd 244*bbf21555SRichard Lowepassword file 245*bbf21555SRichard Lowe.It Pa /etc/shadow 246*bbf21555SRichard Loweshadowed password file 247*bbf21555SRichard Lowe.It Pa /etc/group 248*bbf21555SRichard Lowegroup file 249*bbf21555SRichard Lowe.It Pa /etc/inet/hosts 250*bbf21555SRichard LoweIPv4 and IPv6 host name database 251*bbf21555SRichard Lowe.It Pa /etc/services 252*bbf21555SRichard LoweInternet services and aliases 253*bbf21555SRichard Lowe.It Pa /etc/project 254*bbf21555SRichard Loweproject file 255*bbf21555SRichard Lowe.It Pa /etc/protocols 256*bbf21555SRichard Loweprotocol name database 257*bbf21555SRichard Lowe.It Pa /etc/ethers 258*bbf21555SRichard LoweEthernet address to hostname database or domain 259*bbf21555SRichard Lowe.It Pa /etc/networks 260*bbf21555SRichard Lowenetwork name database 261*bbf21555SRichard Lowe.It Pa /etc/netmasks 262*bbf21555SRichard Lowenetwork mask database 263*bbf21555SRichard Lowe.It Pa /etc/netgroup 264*bbf21555SRichard Lowenetwork group database 265*bbf21555SRichard Lowe.It Pa /etc/user_attr 266*bbf21555SRichard Loweextended user attributes database 267*bbf21555SRichard Lowe.It Pa /etc/security/auth_attr 268*bbf21555SRichard Loweauthorization description database 269*bbf21555SRichard Lowe.It Pa /etc/security/exec_attr 270*bbf21555SRichard Loweexecution profiles database 271*bbf21555SRichard Lowe.It Pa /etc/security/prof_attr 272*bbf21555SRichard Loweprofile description database 273*bbf21555SRichard Lowe.El 274*bbf21555SRichard Lowe.Sh EXIT STATUS 275*bbf21555SRichard LoweThe following exit values are returned: 276*bbf21555SRichard Lowe.Pp 277*bbf21555SRichard Lowe.Bl -tag -width Ds -compact 278*bbf21555SRichard Lowe.It Sy 0 279*bbf21555SRichard LoweSuccessful completion. 280*bbf21555SRichard Lowe.It Sy 1 281*bbf21555SRichard LoweCommand syntax was incorrect, an invalid option was used, or an internal error 282*bbf21555SRichard Loweoccurred. 283*bbf21555SRichard Lowe.It Sy 2 284*bbf21555SRichard LoweAt least one of the specified entry names was not found in the database. 285*bbf21555SRichard Lowe.It Sy 3 286*bbf21555SRichard LoweThere is no support for enumeration on this database. 287*bbf21555SRichard Lowe.El 288*bbf21555SRichard Lowe.Sh SEE ALSO 289*bbf21555SRichard Lowe.Xr getgrnam 3C , 290*bbf21555SRichard Lowe.Xr getnetgrent 3C , 291*bbf21555SRichard Lowe.Xr getpwnam 3C , 292*bbf21555SRichard Lowe.Xr getspnam 3C , 293*bbf21555SRichard Lowe.Xr gethostbyaddr 3NSL , 294*bbf21555SRichard Lowe.Xr gethostbyname 3NSL , 295*bbf21555SRichard Lowe.Xr gethostent 3NSL , 296*bbf21555SRichard Lowe.Xr getprojbyname 3PROJECT , 297*bbf21555SRichard Lowe.Xr getauthattr 3SECDB , 298*bbf21555SRichard Lowe.Xr getexecattr 3SECDB , 299*bbf21555SRichard Lowe.Xr getprofattr 3SECDB , 300*bbf21555SRichard Lowe.Xr getuserattr 3SECDB , 301*bbf21555SRichard Lowe.Xr ethers 3SOCKET , 302*bbf21555SRichard Lowe.Xr getipnodebyaddr 3SOCKET , 303*bbf21555SRichard Lowe.Xr getipnodebyname 3SOCKET , 304*bbf21555SRichard Lowe.Xr getnetbyname 3SOCKET , 305*bbf21555SRichard Lowe.Xr getprotobyname 3SOCKET , 306*bbf21555SRichard Lowe.Xr getservbyname 3SOCKET , 307*bbf21555SRichard Lowe.Xr auth_attr 5 , 308*bbf21555SRichard Lowe.Xr ethers 5 , 309*bbf21555SRichard Lowe.Xr exec_attr 5 , 310*bbf21555SRichard Lowe.Xr group 5 , 311*bbf21555SRichard Lowe.Xr hosts 5 , 312*bbf21555SRichard Lowe.Xr netmasks 5 , 313*bbf21555SRichard Lowe.Xr networks 5 , 314*bbf21555SRichard Lowe.Xr nsswitch.conf 5 , 315*bbf21555SRichard Lowe.Xr passwd 5 , 316*bbf21555SRichard Lowe.Xr prof_attr 5 , 317*bbf21555SRichard Lowe.Xr project 5 , 318*bbf21555SRichard Lowe.Xr protocols 5 , 319*bbf21555SRichard Lowe.Xr services 5 , 320*bbf21555SRichard Lowe.Xr shadow 5 , 321*bbf21555SRichard Lowe.Xr user_attr 5 , 322*bbf21555SRichard Lowe.Xr attributes 7 323