The dbis
client tool can be used to query any of the DBIS databases and display the output in a variety of formats. It can also be used for displaying configuration map entries.
The client tool can display maps in the same format as the system-supplied getent
command, although it only includes data from DBIS and not from the other sources defined in /etc/nsswitch.conf
. It is also more powerful than the getent
command, optionally displaying more information including those databases not supported by NSS as well as LDAP object class and attribute information, source DNs and time the data was loaded into the cache.
The dbis
command takes a subcommand that identifies the database to query and the type of information requested. The subcommand is similarly named to the system C API used for querying NSS. For example, getpwnam()
is the name of the C function used to get password entries, and dbis getpwnam
is the command that queries password entries from DBIS.
A full list of supported subcommands is obtained by running dbis -h all
:
$ dbis -h all
getautocfg lookup in dbisAutomountConfig database
getautomount lookup in automount database
getbootbyaddr lookup in bootparams database (by ipv4Address)
getbootbyaddr6 lookup in bootparams database (by ipv6Address)
getbootbyhost lookup in bootparams database (by rn)
getbootcfg lookup in dbisBootConfig database
getbootparam lookup in bootparams database
getcustom lookup in custom database
getcustomcfg lookup in dbisCustomConfig database
getdomaincfg lookup in dbisDomainObject database
getether lookup in ethers database
getetherbyaddr lookup in ethers database (by ipv4Address)
getetherbyaddr6 lookup in ethers database (by ipv6Address)
getetherbyhost lookup in ethers database (by rn)
getethercfg lookup in dbisEtherConfig database
getgrbymem lookup group by membership
getgrcfg lookup in dbisGroupConfig database
getgrgid lookup in group database (by gidNumber)
getgrnam lookup in group database
gethostbyaddr lookup in hosts database (by ipv4Address)
gethostbyaddr6 lookup in hosts database (by ipv6Address)
gethostbyname lookup in hosts database
gethostcfg lookup in dbisHostConfig database
getnetbyaddr lookup in networks database (by ipNetworkNumber)
getnetbyname lookup in networks database
getnetcfg lookup in dbisNetworkConfig database
getnetgrcfg lookup in dbisNetgroupConfig database
getnetgrent lookup in netgroup database
getnetsvcfg lookup in dbisNetserviceConfig database
getnetsvent lookup in netservice database
getprotobyname lookup in protocols database
getprotobynumber lookup in protocols database (by ipProtocolNumber)
getprotocfg lookup in dbisProtocolConfig database
getpwcfg lookup in dbisPasswdConfig database
getpwnam lookup in passwd database
getpwuid lookup in passwd database (by uidNumber)
getrpcbyname lookup in rpc database
getrpcbynumber lookup in rpc database (by rpcNumber)
getrpccfg lookup in dbisRpcConfig database
getservbyname lookup in services database
getservbyport lookup in services database (by ipServicePort)
getservcfg lookup in dbisServiceConfig database
innetgr lookup in netgroup database
innetgr2 lookup in netgroup database
innetsv lookup in netservice database
dbis
accepts the following command-line arguments:
Option | Description |
---|---|
-D (--debug ) |
Turn on debug mode. |
-e (--recurse ) |
Recurse member netgroups. This is used in conjunction with dbis getnetgrent and will expand any included netgroups to produce a list of tuples only. |
-h (--help ) [command] |
Display help message. If a command is given, display help on the specified command. If command is all , list all server commands. |
-j (--json ) |
Display raw JSON output. |
-l (--long ) |
Display long output. This will display all of the data contained in the LDAP entry in a format similar to LDIF. The default is to display the data in a format similar to the getent command. |
-n (--nss ) |
Set output format to NSS-style, i.e. similar to the getent command. This is the default behaviour. |
-o (--sort ) |
Sort output. This sorts entries in dictionary order. If displaying long output with the -l option, the attributes within a single entry will also be sorted. |
-p (--pprint ) |
Pretty-print non-string attribute data encountered when rendering long or raw output. |
-r (--raw ) |
Display raw output. |
-s (--server ) address |
Connect to DBIS server on this address. Can be in the format host:port or a pathname to a UNIX domain socket. The default is /var/run/dbis/client . |
-t (--stream ) |
Set output format to data stream (binary) mode. This is the output format used by the NSS library over the /var/run/dbis/nss socket. |
-v (--version ) |
Display program version and copyright message, then exit. |
-w (--width ) width |
Override terminal width with alternative value. This affects how raw data is pretty-printed when used alongside the -p option. |
Displaying a single entry from the passwd map:
$ dbis getpwnam mark
mark:x:801:900:Bannister, Mark:/home/mark:/bin/bash
Displaying a single entry from the passwd map in long output:
$ dbis -l getpwnam mark
Database: passwd
Command: getpwnam mark
Time retrieved: Fri Jan 9 07:35:06 2015
DN: en=mark,ou=passwd,ou=sales,o=infra
Last updated: Fri Jan 9 07:28:03 2015 (422.9773 seconds ago)
Configuration map: cn=passwd,en=sales.corp,ou=domain-mappings,o=infra
objectClass: top
objectClass: inetOrgPerson
objectClass: posixUserAccount
en: mark
displayName: Bannister, Mark
cn: Mark
loginShell: /bin/bash
uidNumber: 801
gidNumber: 900
sn: Bannister
homeDirectory: /home/mark
dbisMapGecos: displayName
Displaying a single entry from the passwd map in raw format:
$ dbis -r getpwnam mark
(('en=mark,ou=passwd,ou=sales,o=infra', {{'_cfgmap': ['cn=passwd,en=sales.corp,
ou=domain-mappings,o=infra'], 'en': ['mark'], 'displayName': ['Bannister, Mark'],
'cn': ['Mark'], 'objectClass': ['top', 'inetOrgPerson', 'posixUserAccount'],
'loginShell': ['/bin/bash'], 'uidNumber': ['801'], 'gidNumber': ['900'],
'sn': ['Bannister'], 'homeDirectory': ['/home/mark'], 'dbisMapGecos':
['displayName']}), 1420788483.685508, 900)
Displaying a single entry from the passwd map in raw format with pretty-print:
$ dbis -rp getpwnam mark
(('en=mark,ou=passwd,ou=sales,o=infra',
{'_cfgmap': ['cn=passwd,en=sales.corp,ou=domain-mappings,o=infra'],
'cn': ['Mark'],
'dbisMapGecos': ['displayName'],
'displayName': ['Bannister, Mark'],
'en': ['mark'],
'gidNumber': ['900'],
'homeDirectory': ['/home/mark'],
'loginShell': ['/bin/bash'],
'objectClass': ['top', 'inetOrgPerson', 'posixUserAccount'],
'sn': ['Bannister'],
'uidNumber': ['801']}),
1420788483.685508,
900)
Iterating all entries in the hosts map:
$ dbis gethostbyname '*'
0:1:2:3:4:5:6:7 picard-hive
10.11.12.13 picard
10.11.12.15 kilcher2
23:0:7:0:1:2:3:4 peg6.aja.com
23.0.7.1 peg.aja.com
10.11.12.14 kilcher
Listing contents of auto_master
map:
$ dbis getautomount auto_master
/home auto_home -nobrowse
/qa qa
/media media
/- auto_direct
Listing contents of auto_home
map:
$ dbis getautomount auto_home
fred surbiton:/export/home/&
sheila surbiton:/export/home/&
* ditton:/export/home/&
Looking up all custom available custom maps:
$ dbis getcustom
console
tracks
weblinks
Looking up a specific entry in one custom map:
$ dbis getcustom console chekov
chekov 111 ssh
Displaying configuration map objects for the services database:
$ dbis -l getservcfg
Database: dbisServiceConfig
Command: getservcfg
Time retrieved: Fri Jan 9 17:05:56 2015
DB last refreshed: Fri Jan 9 16:59:28 2015 (388.6844 seconds ago)
DN: cn=services,en=sales.corp,ou=domain-mappings,o=infra
Last updated: Fri Jan 9 16:59:28 2015 (388.6849 seconds ago)
objectClass: top
objectClass: dbisMapConfig
objectClass: dbisServiceConfig
dbisMapDN: ou=services,o=infra
description: Primary services database
dbisMapFilter: objectClass=ipServiceObject
cn: services
DN: cn=services-legacy,ou=rfc2307,en=sales.corp,ou=domain-mappings,o=infra
Last updated: Fri Jan 9 16:59:28 2015 (388.6852 seconds ago)
objectClass: top
objectClass: dbisMapConfig
objectClass: dbisServiceConfig
dbisMapAttr: ipProtocolName=ipServiceProtocol
dbisMapAttr: ipPortNumber=ipServicePort
dbisMapAttr: en=cn
cn: services-legacy
dbisMapClass: ipServiceObject=ipService
dbisMapFilter: objectClass=ipService
dbisMapDN: ou=rfc2307,o=infra
description: services database entries that use the legacy RFC2307 schema
For more information on the other components of DBIS, see [Using DBIS].