Prueba
getent passwd "$uid" | cut -d: -f1
Usted puede disfrutar de esta pequeña cancioncilla.
$ id -nu [number]
3.17.3-1-ARCH #1 SMP PREEMPT Vie 14 de noviembre 22:56:01 CET 2014 i686 GNU/Linux
Puedo confirmar que devuelve un nombre de usuario correspondiente, si existe, en Arch Linux. También puedo confirmar que no funciona en Ubuntu cuando se ejecuta como un usuario normal, aunque no lo he probado como superusuario. Tampoco funciona en Alpine Linux. Tal vez una característica de seguridad impida que esto funcione en algunos sistemas.
ls
ya realiza esa búsqueda. Puede realizar una búsqueda de información de usuario desde la línea de comando con getent passwd
.
Si ls
muestra una identificación 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 de otro sistema, o si un archivo pertenece a un usuario ahora eliminado, o si pasó una ID de usuario numérica a chown
, puede tener un archivo que pertenezca a un ID de usuario que no tenga nombre.
En un host compartido, puede tener acceso a algunos archivos que se comparten entre varias máquinas virtuales, cada una con su base de datos de usuario. Esto es un poco extraño (¿por qué compartir archivos pero no los usuarios que los poseen?), pero es técnicamente posible.