Home > Package & System Management > getent

getent: Querying Name Service Switch (NSS) entries

The getent command retrieves entries from various system databases (e.g., user, group, host information) using the Name Service Switch (NSS) library. This allows it to fetch information not only from local files like /etc/passwd, /etc/group, and /etc/hosts, but also from other sources defined in the NSS configuration, such as NIS and LDAP.

Overview

getent queries various databases like users, groups, and hosts based on the system's Name Service Switch (NSS) configuration. It can retrieve information from local files (/etc/passwd, /etc/group, etc.) as well as network-based services (NIS, LDAP, etc.), making it useful for understanding how the system interprets and uses specific information.

Key Features

  • Queries various data sources according to NSS configuration
  • Retrieves system information such as users, groups, hosts, and services
  • Supports local files and network services (NIS, LDAP)
  • Useful for system information diagnostics and scripting

Common Databases Queried

These are common types of databases that can be queried with getent.

  • passwd: User account information (e.g., /etc/passwd)
  • group: Group information (e.g., /etc/group)
  • hosts: Host name and IP address information (e.g., /etc/hosts, DNS)
  • services: Network services and port numbers (e.g., /etc/services)
  • protocols: Network protocol information (e.g., /etc/protocols)
  • networks: Network names and address information (e.g., /etc/networks)

Key Options

The getent command primarily uses database names and query keys as arguments, but it also offers a few useful options.

Query Control

Generated command:

Try combining the commands.

Description:

`getent` Executes the command.

Combine the above options to virtually execute commands with AI.

Usage Examples

Examples of how to use the getent command to retrieve various system information.

List All Users

getent passwd

Displays all user account information registered on the system.

Get Specific User Information

getent passwd root

Retrieves the account information for a specified user name (e.g., 'root').

List All Groups

getent group

Displays all group information registered on the system.

Get Specific Group Information

getent group sudo

Retrieves the information for a specified group name (e.g., 'sudo').

Get IP Address for a Host Name

getent hosts google.com

Outputs the IP address information for a specified host name (e.g., 'google.com'). This follows DNS settings.

Get Host Name for an IP Address

getent hosts 8.8.8.8

Performs a reverse lookup to get the host name information for a specified IP address (e.g., '8.8.8.8').

Get Port Number for a Specific Service

getent services ssh

Displays the port number and protocol information for a specified service (e.g., 'ssh').

Query User Information Only from Files

getent -s files passwd

Explicitly sets the NSS source to 'files' to query user information only from local files like /etc/passwd.

Tips & Notes

Tips and notes for using the getent command more effectively.

Understanding the NSS Configuration File

getent queries data sources in the order defined in the `/etc/nsswitch.conf` file. It's important to understand this order to know how your system retrieves information. For example, `passwd: files systemd` means the system first checks local files (`/etc/passwd`) and then looks for user information through the `systemd` service.

Usage Tips

  • **Network Problem Diagnosis:** Use `getent hosts` to diagnose DNS or NIS configuration issues.
  • **User/Group Validation in Scripts:** Useful for checking if a specific user or group exists on the system within scripts.
  • **Difference from `id` command:** The `id` command shows the UID/GID and group memberships of the currently logged-in or specified user. In contrast, `getent passwd` retrieves detailed information for all registered user accounts on the system via NSS.

Same category commands