¿Cómo puedo buscar un nombre de usuario por identificación en Linux?

¿Cómo puedo buscar un nombre de usuario por identificación en Linux?

El comando idse puede utilizar para buscar el nombre de un usuario uid, por ejemplo:

$ id -u ubuntu
1000

¿Existe un comando para buscar un nombre de usuario desde un uid? Me doy cuenta de que esto se puede hacer mirando el /etc/passwdarchivo, pero pregunto si existe un comando para esto, especialmente si el usuario que lo ejecuta no es root.

no estoy buscando elactualnombre de usuario del usuario, es decir, no estoy buscando whoamio logname.

Esto también me hizo preguntarme si en el alojamiento web compartido se trata de una característica de seguridad o simplemente no entiendo algo correctamente.

Para su examen, el /etc/passwdarchivo de un servidor web compartido:

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
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
avahi:x:70:70:Avahi daemon:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
avahi-autoipd:x:100:104:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
mailman:x:32006:32006::/usr/local/cpanel/3rdparty/mailman/mailman:/usr/local/cpanel/bin/noshell
dovecot:x:97:97:dovecot:/usr/libexec/dovecot:/sbin/nologin
mysql:x:101:105:MySQL server:/var/lib/mysql:/bin/bash
cpaneleximfilter:x:32007:32009::/var/cpanel/userhomes/cpaneleximfilter:/usr/local/cpanel/bin/noshell
nagios:x:102:106:nagios:/var/log/nagios:/bin/sh
ntp:x:38:38::/etc/ntp:/sbin/nologin
myuser:x:1747:1744::/home/myuser:/usr/local/cpanel/bin/jailshell

Y aquí hay una lista de directorio de muestra de/tmp/

drwx------  3 root     root        1024 Apr 16 02:09 spamd-22217-init/
drwxr-xr-x  2      665      664    1024 Apr  4 00:05 update-cache-44068ab4/
drwxr-xr-x  4      665      664    1024 Apr 17 15:17 update-extraction-44068ab4/
-rw-rw-r--  1      665      664   43801 Apr 17 15:17 variable.zip
-rw-r--r--  1      684      683    4396 Apr 17 07:01 wsdl-13fb96428c0685474db6b425a1d9baec

Podemos ver rootque es el propietario de algunos archivos y roottambién aparece en /etc/passwd, sin embargo, todos los demás usuarios/grupos aparecen como números.

Respuesta1

Quizás disfrutes de esta pequeña canción.

$ id -nu [number]

3.17.3-1-ARCH #1 SMP PREEMPT Viernes 14 de noviembre 22:56:01 CET 2014 i686 GNU/Linux

Puedo confirmar que devuelve el nombre de usuario correspondiente, si existe, en Arch Linux. También puedo confirmar que no funciona en Ubuntu cuando se ejecuta como usuario normal, aunque no lo he probado como superusuario. Tampoco funciona en Alpine Linux. Quizás una característica de seguridad impida que esto funcione en algunos sistemas.

Respuesta2

Intentar

getent passwd "$uid" | cut -d: -f1

Respuesta3

lsya realiza esa búsqueda. Puede realizar una búsqueda de información del usuario desde la línea de comando congetent passwd.

Si lsmuestra un ID de usuario en lugar de un nombre de usuario, es porque no hay ningún usuario con ese nombre. Los sistemas de archivos almacenan ID de usuario, no nombres de usuario. Si monta un sistema de archivos desde otro sistema, o si un archivo pertenece a un usuario ahora eliminado, o si le pasó una ID de usuario numérica chown, puede tener un archivo que pertenezca a una ID de usuario que no tiene nombre.

En un host compartido, es posible que tengas acceso a algunos archivos que se comparten entre varias máquinas virtuales, cada una con su base de datos de usuarios. Esto es un poco extraño (¿por qué compartir archivos pero no los usuarios que los poseen?), pero es técnicamente posible.

Respuesta4

Me doy cuenta de que esta es una vieja pregunta, pero aquí hay otra respuesta.

awk -F: '{print $1,$3}' /etc/passwd | grep <UID>

información relacionada