getent – get entries from administrative database
getent is Unix command which helps you query one of the following administrative databases in Unix: passwd, group, hosts, services, protocols, or networks.
Administrative databases in Unix
As you can probably see from their names, the administrative databases are here to help you gather the most vital information about your environment:
- passwd – can be used to confirm usernames, userids, home directories and full names of your users
- group – all the information about Unix groups known to your system
- services – all the Unix services configured on your system
- networks – networking information – what networks your system belongs to
- protocols – everything your system knows about network protocols
How To Use getent
My home Linux PC has a hostname of centos7. If I ever need to double-check which IPs this hostname points to, here’s how I can use getent:
[email protected]:~ getent hosts centos7
127.0.1.1 centos7
192.168.0.2 centos7
getent passwd
Without additional parameters, this command will show you information about all the users available on your system. Most often this means “users locally created on your server”, but if NIS or LDAP are configured, this might show you a really long list of all the users in your organisation.
This is an example from my CentOS 7.4 setup:
[email protected]:~ $ getent passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
techstack:x:1001:1001:Tech Stack Solutions:/home/techstack:/bin/bash
greys:x:1002:1002:Gleb Reys:/home/greys:/bin/bash
influxdb:x:997:993::/var/lib/influxdb:/bin/false
telegraf:x:996:992::/etc/telegraf:/bin/false
grafana:x:995:991:grafana user:/usr/share/grafana:/sbin/nologin
dd-agent:x:994:990:Datadog Agent:/opt/datadog-agent:/bin/sh
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
Using getent to find a UID by username
getent accepts various keys when searching in databases. For the passwd one, you can user either username or user id (UID) to search the database.
[email protected]:~ getent passwd greys
greys:x:1000:1000:Gleb Reys,,,:/home/greys:/bin/bas
Using getent to find a username by UID
Like I said, the opposite will work as well:
[email protected]:~ getent passwd 1000
greys:x:1000:1000:Gleb Reys,,,:/home/greys:/bin/bash
getent group
Without parameters, this will show you all the groups found on your Unix or Linux server:
[email protected]:~ $ getent group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:30:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
ssh_keys:x:999:
input:x:998:
systemd-journal:x:190:
systemd-network:x:192:
dbus:x:81:
polkitd:x:997:
postdrop:x:90:
postfix:x:89:
chrony:x:996:
sshd:x:74:
ntp:x:38:
cgred:x:995:
docker:x:994:
techstack:x:1001:
greys:x:1002:
influxdb:x:993:
telegraf:x:992:
grafana:x:991:
dd-agent:x:990:
rpc:x:32:
rpcuser:x:29:
nfsnobody:x:65534:
printadmin:x:989:
vboxusers:x:988:
Use getent to show Unix group
If you know a Unix group name, getent will help you confirm its numeric group ID and show members (usernames).
In this example below, system group mail has group ID of 12, and system user postfix as its member.
[email protected]:~ $ getent group mail
mail:x:12:postfix
See also
- basic Unix commands
- Unix Commands
- id – print user identity
- who – see who is logged into the system
getent is Unix command which helps you query one of the following administrative databases in Unix: passwd, group, hosts, services, protocols, or networks.
Administrative databases in Unix
As you can probably see from their names, the administrative databases are here to help you gather the most vital information about your environment:
- passwd – can be used to confirm usernames, userids, home directories and full names of your users
- group – all the information about Unix groups known to your system
- services – all the Unix services configured on your system
- networks – networking information – what networks your system belongs to
- protocols – everything your system knows about network protocols
How To Use getent
My home Linux PC has a hostname of centos7. If I ever need to double-check which IPs this hostname points to, here’s how I can use getent:
[email protected]:~ getent hosts centos7
127.0.1.1 centos7
192.168.0.2 centos7
getent passwd
Without additional parameters, this command will show you information about all the users available on your system. Most often this means “users locally created on your server”, but if NIS or LDAP are configured, this might show you a really long list of all the users in your organisation.
This is an example from my CentOS 7.4 setup:
[email protected]:~ $ getent passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
techstack:x:1001:1001:Tech Stack Solutions:/home/techstack:/bin/bash
greys:x:1002:1002:Gleb Reys:/home/greys:/bin/bash
influxdb:x:997:993::/var/lib/influxdb:/bin/false
telegraf:x:996:992::/etc/telegraf:/bin/false
grafana:x:995:991:grafana user:/usr/share/grafana:/sbin/nologin
dd-agent:x:994:990:Datadog Agent:/opt/datadog-agent:/bin/sh
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
Using getent to find a UID by username
getent accepts various keys when searching in databases. For the passwd one, you can user either username or user id (UID) to search the database.
[email protected]:~ getent passwd greys
greys:x:1000:1000:Gleb Reys,,,:/home/greys:/bin/bas
Using getent to find a username by UID
Like I said, the opposite will work as well:
[email protected]:~ getent passwd 1000
greys:x:1000:1000:Gleb Reys,,,:/home/greys:/bin/bash
getent group
Without parameters, this will show you all the groups found on your Unix or Linux server:
[email protected]:~ $ getent group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:30:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
ssh_keys:x:999:
input:x:998:
systemd-journal:x:190:
systemd-network:x:192:
dbus:x:81:
polkitd:x:997:
postdrop:x:90:
postfix:x:89:
chrony:x:996:
sshd:x:74:
ntp:x:38:
cgred:x:995:
docker:x:994:
techstack:x:1001:
greys:x:1002:
influxdb:x:993:
telegraf:x:992:
grafana:x:991:
dd-agent:x:990:
rpc:x:32:
rpcuser:x:29:
nfsnobody:x:65534:
printadmin:x:989:
vboxusers:x:988:
Use getent to show Unix group
If you know a Unix group name, getent will help you confirm its numeric group ID and show members (usernames).
In this example below, system group mail has group ID of 12, and system user postfix as its member.
[email protected]:~ $ getent group mail
mail:x:12:postfix
See also
- basic Unix commands
- Unix Commands
- id – print user identity
- who – see who is logged into the system