Uso del comando getent en linux.
El comando getent, es una herramienta para Linux que nos ayuda a obtener las entradas de algunos archivos de texto importantes del sistema, más conocidos como bases de datos. Estos archivos pertenecen a lo que se conoce como bibliotecas Name Service Switch, que están configuradas en el archivo /etc/nsswitch.conf.
Los archivos de base de datos, deben ser admitidos por la biblioteca GNU C. A continuación enumeramos todos los posibles.
- ahost
- ahostsv4
- ahostsv6
- aliases
- ethers
- group
- gshadow
- hosts
- initgroups
- netgroup
- networks
- passwd
- protocols
- rpc
- services
- shadow
Esto no quiere decir que tu sistema los tenga todos, solo los que necesita. Vemos un ejemplo.
# /etc/nsswitch.conf # # Example configuration of GNU Name Service Switch functionality. # If you have the `glibc-doc-reference' and `info' packages installed, try: # `info libc "Name Service Switch"' for information about this file. passwd: compat systemd group: compat systemd shadow: compat gshadow: files hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
En este artículo veremos algunos ejemplos prácticos de uso del comando. Fácil y útil, ya verás.
Comando getent
Uso del comando getent en linux
Passwd
En nuestro primer ejemplo, listamos la base de datos passwd.
getent passwd
Obtenemos una salida similar a…
sergio@sololinux:~$ getent passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
Group
También podemos enumerar los grupos con group.
getent group
Ejemplo…
sergio@sololinux:~$ getent group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog,sergio tty:x:5: disk:x:6: lp:x:7: mail:x:8:
Hosts
Al ejecutar hosts, podemos ver el hostname del sistema.
getent hosts
Imagen de ejemplo…
Comando getent con hosts
Protocols
Los protocolos admitidos por el sistema.
getent protocols
En nuestro caso…
sergio@sololinux:~$ getent protocols ip 0 IP hopopt 0 HOPOPT icmp 1 ICMP igmp 2 IGMP ggp 3 GGP ipencap 4 IP-ENCAP st 5 ST tcp 6 TCP egp 8 EGP igp 9 IGP pup 12 PUP udp 17 UDP hmp 20 HMP xns-idp 22 XNS-IDP rdp 27 RDP
Buscar el servicio de un puerto
Ahora listamos los servicios del sistema, junto a su número de puerto.
getent services
Vemos una imagen de ejemplo, que puede ser similar a la tuya.
Servicios y puertos con el comando getent
Uso personalizado de getent
El comando getent, no se limita a listar de forma masiva. También podemos personalizar los listados, especificando la búsqueda deseada.
Buscar el servicio de un puerto
En este ejemplo de uso, queremos averiguar que servicio usa el puerto 22.
getent services 22
En la salida observamos que el puerto 22, pertenece al servicio ssh.
sergio@sololinux:~$ getent services 22 ssh 22/tcp
Buscar el puerto de un servicio
Ahora queremos saber el puerto que utiliza el servicio telnet.
getent services telnet
El resultado es correcto, es el puerto 23.
sergio@sololinux:~$ getent services telnet telnet 23/tcp
Que usuario ha iniciado sesión
Identificar quien inicio la sesión, es tarea sencilla. Ejecuta el siguiente comando.
getent passwd `whoami`
El comando getent, nos ofrece la información solicitada.
sergio@sololinux:~$ getent passwd `whoami` sergio:x:1000:1000:sergio,,,:/home/sergio:/bin/bash
Información sobre un usuario
También podemos solicitar la información, de un usuario en particular por su nombre. Por ejemplo…
getent passwd root # o getent passwd usuario
Ejemplo de salida.
Usuarios con el comando getent
Saber la ip de un dominio
Como vemos en este artículo, la info aportada por getent es muy extensa. No podía faltar, el como saber la ip de un dominio.
getent hosts dominio
Vemos algo como…
sergio@sololinux:~$ getent hosts sololinux.es 163.172.52.4 sololinux.es sergio@sololinux:~$ getent hosts google.com 2a00:1450:400d:804::200e google.com sergio@sololinux:~$ getent hosts marca.es 193.110.128.199 marca.es
Opciones del comando getent
El comando getent también nos ofrece unas interesantes y útiles opciones.
Opción | Uso |
---|---|
-i, --no-idn | Desactivar la codificación IDN |
-s, --service=CONFIG | Configuración del servicio |
--usage | Ofrecer un mensaje de uso |
-V, --version | Versión de la herramienta |
-?, --help | Ayuda de la herramienta |
Como ejemplo, identificamos la versión de la herramienta getent.
getent -V
En Ubuntu y derivados nos ofrece este resultado.
sergio@sololinux:~$ getent -V getent (Ubuntu GLIBC 2.27-3ubuntu1.4) 2.27 Copyright (C) 2018 Free Software Foundation, Inc. Esto es software libre; vea el código fuente para las condiciones de copia. No hay NINGUNA garantía; ni siquiera de COMERCIABILIDAD o IDONEIDAD PARA UN FIN DETERMINADO. Escrito por Thorsten Kukuk.
En CentOS y derivados…
[root@sololinux-demo ~]# getent -V getent (GNU libc) 2.17 Copyright (C) 2012 Free Software Foundation, Inc. Esto es software libre; vea el código fuente para las condiciones de copia. No hay NINGUNA garantía; ni siquiera de COMERCIABILIDAD o IDONEIDAD PARA UN FIN DETERMINADO. Escrito por Thorsten Kukuk.
Estados de salida
El comando getent, en ciertas ocasiones también nos puede devolver el estado de la salida. Las vemos en la siguiente tabla.
Valor del estado | Significado del valor |
---|---|
0 | El comando se completó correctamente |
1 | Faltan argumentos o no reconoce la base de datos |
2 | Las claves insertadas no se encuentran en la base de datos |
3 | La enumeración no es compatible con la base de datos |
Herramienta Getent
Canales de Telegram: Canal SoloLinux – Canal SoloWordpress
Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales. Uso del comando getent en linux.
Mi lapto se me bloqueo con el sowfwer de linux MultiBoot USB….Yumi….instale en el mismo la version de windows 10 ISO realice todos los pasos previsto para este proposito….pero al iniciar la pc sale logotipo de linux en pantalla dandome un error de instalacion de windows….espero 25 segundos y sale una pantalla negra con una palabra en ingles que dice boot seguida de un guion….pienso que alli debo poner una direccion o un comando…pero alli es donde no se cul comando o direccion poner….pues me tiene la pc sin funcionar con su pantalla bloqueada no me deja iniciar windows mi pc arranca normal con su logo de fabrica acer pero en seguida sale la pantalla con logotipo de linus el pinguino y el pendrive en su mano como explique anteriormente me bloquea el inicio de windows he probado todos los medios y sigue estoy en esta situacion desde hace tres dias que solucion se proda buscar para este incoveniente que es tan estresante…sin mas Andres Jesus…grasias