Hola chic@, el post de hoy es bastante teórico, escribiré sobre el UID y GID en Mac, así que coge un poco de café 😀
Tabla de contenidos
Qué es un UID
En los sistemas Unix y derivados de estos, por ejemplo Mac… al crear un usuario o grupo (objetos) estos por detrás tienen un número, identificador único (UID).
- UID (User ID) para el usuario.
- GID (Group ID) para el grupo.
Unix y derivados usan dichos números identificar a usuarios/grupos, no usa el nombre del usuario/grupo. Aquí muestro una captura del comando top, en el que muestra procesos y el UID que ejecuta dicho proceso.
El comando «id» , podemos usarlo como información adicional de otro comando para reparar permisos de un usuario, es decir, necesitamos saber el UID del usuario. Aquí te dejo el post.
Algo importante a mencionar… un usuario posee un UID y GID, que es su grupo primario (solo puede tener un grupo primario), pero puede pertenecer a más grupos.
Si ejecutamos el comando id, nos mostrará el UID, GID y otros grupos del usuario:
id
Un poco de diferencia entre sistemas GNU/Linux y Mac…
En sistemas GNU/Linux para saber el UID y GID vamos al archivo /etc/passwd pero en Mac no funciona igual, cosas de Apple… aunque este fichero si existe en Mac, solo almacena sobre todo usuarios de servicio como: _appstore, _mysql, _sshd, _networkd además de root, daemon entre otros… pero no almacena los «usuarios normales».
Para listar los usuarios del sistema tenemos que recurrir a otros medios que podemos hacerlo a través de la terminal o alguna aplicación gráfica, que mostraré a continuación.
Conociendo el UID y GID por terminal
Identificar el UID del usuario
Para saber el UID del usuario que ejecuta el comando usamos:
id -u
Identificar el GID del grupo
Para saber el GID del usuario que ejecuta el comando usamos:
id -g
Convertir el número UID, GID a nombre
Si si añadimos la opción -n a los comandos anteriores, podemos saber el nombre y grupo del usuario:
Conocer más información sobre un usuario en concreto
Para saber más información sobre un usuario desde la terminal podemos usar el comando dscl:
dscl . -read /Users/<username>
Por ejemplo, para averiguar información (ID del usuario [UID], ID del grupo primario [GID], shell, directorio de incio/home, etc.) sobre el usuario labsmac:
dscl . -read /Users/labsmac
Listar los usuarios del sistema
dscl . -list /Users UniqueID
Como ves en la imagen, nos muestra los «usuarios normales» pero además los usuarios que ejcutan servicios, que son del sistema y su nombre empieza por «_»
Listar los grupos del sistema
En esta apartado conozco dos comandos, el primero es con dscl
dscl . list /Groups PrimaryGroupID
Otra forma de hacer lo mismo es con el comando, dscacheutil:
dscacheutil -q group
Conociendo el UID y GID por interfaz gráfica
Para saber esta el UID y GUID por interfaz gráfica tenemos dos opciones: Preferencias del Sistema y Utilidad de directorios. Esta última es más completa porque nos da más información sobre el usuario y grupo
Desde Preferencias del sistema
Identificar UID del usuario
Para saber el UID del usuario vamos a Preferencias del Sistema>Usuarios y grupos, realizamos clic derecho sobre cualquier usuario y luego en Opciones avanzadas…
Aquí podemos observar más información del usuario, entre los que se encuentra el UID del usuario (501)
Identificar GID del grupo
Para averiguar el GID del grupo, realizamos el mismo procedimiento, clic derecho sobre el grupo y luego en Opciones avanzadas.
Desde Utilidad de Directorios
Por último, tenemos la Utilidad de Directorios, que podemos llegar a el desde el buscador de Spotlight o desde Preferencias del Sistema > Usuarios y grupos > Opciones de inicio > Servicios de cuentas en red (Clicamos en Acceder) y luego en Abrir Utilidad de Directorios
Una vez aquí, vamos a la pestaña Editor de directorios, en el apartado de visualización podemos elegir Users, Groups y más… en el buscador podemos fitlrar y en la parte derecha nos muestra información sobre dicho usuario/grupo, etc.