¿Por qué es el administrador principal UID 501?

11

* Entiendo que el usuario administrador primario se da un ID de usuario de 501los usuarios subsiguientes obtener los números incrementales ( 502, 503, ...). Pero por que 501? ¿Qué tiene de especial 50x, cuál es la razón histórica / técnica de esta elección?

* Comencé a investigar esto cuando tuve curiosidad por saber por qué mi disco duro externo tenía todos sus archivos basura dentro .Trashes/501. Mi búsqueda me llevó a la conclusión de que 501es la ID de usuario para el administrador principal en los sistemas * nix (estoy en macOS), pero no por qué .

usuario137369
fuente
77
¡Pensé que el UID del administrador principal era 0!
Jeff Schaller

Respuestas:

21

Muchos sistemas Unix comienzan a distribuir UID a los usuarios en un número particular. Solaris le dará al primer usuario de propósito general UID 100, en OpenBSD es 1000, y en macOS parece que es UID 501 que será el UID para el primer usuario interactivo creado, que también es probable que sea un usuario administrador de macOS (que no es lo mismo como usuario root).

Las cuentas con números más bajos son cuentas de usuario del sistema para daemons, etc. Esto hace que sea más fácil distinguir las cuentas "humanas" interactivas de las cuentas de servicios del sistema. Esto también puede facilitar la administración de usuarios, la autenticación, etc. en varios software. YP / NIS , un sistema poco anticuado para mantener las cuentas de usuario (y otra información) en un servidor central sin tener que crear usuarios locales en múltiples máquinas cliente, por ejemplo, tiene una MINUIDy MAXUIDla configuración de la gama de cuentas de usuario que debe manejar.

En algunos Unices, se puede asignar una variedad de cuentas de servicio del sistema a software de terceros, como los UID 50 a 999 en FreeBSD o 500 a 999 en OpenBSD.

Todos estos rangos son elegidos por los fabricantes y mantenedores de los Unices individuales de acuerdo con las necesidades esperadas de su sistema operativo. El estándar POSIX no dice nada sobre estas cosas. El UID asignable más bajo y más alto (y GID) a menudo es configurable por un administrador local (consulte su addusermanual).

La mayoría de Unices reserva el UID 0 para rootel superusuario y asigna el UID más alto posible (o al menos algún valor alto) al usuario nobody(Solaris usa UID 60001, OpenBSD usa 32768, pero los UID pueden ser mucho más grandes que eso).

(Vea los comentarios sobre UID 0 siempre siendo root(o no), lo cual es una ligera digresión de este tema)


Actualización: El proyecto OpenBSD rechazó recientemente la idea de aleatorizar la asignación de UID / GID.

Kusalananda
fuente
Tenga en cuenta también que estos son simplemente CONVENCIONES. En los sistemas Unix y similares a Unix, no hay nada inherentemente mágico en un UID. Root podría recibir arbitrariamente un UID de 65535 y el primer usuario interactivo podría asignarse como UID 0.
Doug R.
@DougR. Posiblemente, pero es muy probable que rompa una serie de piezas de software existentes. POSIX tiende a decir que un proceso necesita "privilegios apropiados", no un usuario . Consulte también la definición de "privilegios apropiados" (que menciona UID 0 como "superusuario" en algunos sistemas): pubs.opengroup.org/onlinepubs/9699919799/xrat/…
Kusalananda
El privilegio sobre el usuario era el punto de mi comentario, incluso si no lo dijera tan claramente como usted lo hizo. El único software que debería romperse es el software que depende de que su UID esté en un rango específico. No estoy seguro de qué, si algo, hace eso.
Doug R.
@DougR. Relacionados: superuser.com/questions/626843/...
Kusalananda
8

Para las distribuciones que siguen el LSB , asignan UID y GID 0-99 estáticamente. Los UID 100-499 se asignan dinámicamente, pero también son para el sistema y no para las cuentas de inicio de sesión.

Por ejemplo, los demonios de impresión como cupstienden a recibir su propia cuenta de usuario. Entonces, si se explota una vulnerabilidad en el demonio, el demonio no se está ejecutando como rootcon todo el poder sobre el sistema. (Tampoco tiene necesariamente el poder de interferir con otros demonios).

En distribuciones de Linux más recientes, el rango del sistema se extiende hasta 999.

Esto dejaría los UID 500 hacia arriba (o 1000 hacia arriba) para las cuentas de inicio de sesión.

Debian también tiene una asignación estática paraUIDGID 100, aunque no puedo imaginar que esa desviación cause algún problema en particular.

Es fácil imaginar otro sistema con una desviación off-by-one, que además reserva UID 500. (Supongo que esto aún sería compatible; no puedo imaginar que todos los Linux hayan estado violando el LSB durante tanto tiempo, sin se está actualizando).

La primera cuenta de inicio de sesión no tiene que ser una cuenta de administrador ni la cuenta de administrador principal. Los sistemas no necesariamente usan sudo(particularmente si son anteriores :). Podría decir que la "cuenta de administrador principal" es rooten ese caso. Aparte de eso, * nix y las distribuciones de Linux de propósito general no reconocen una "cuenta de administrador principal" específica.

sourcejedi
fuente
No estoy seguro de por qué estás hablando de Linux, cuando OP pregunta específicamente sobre Mac OS X.
un CVn
> editado hace 7 horas> en * nix systems
sourcejedi
44
On more recent Linux distributions, the system range is extended up to 999.- Siempre tuve una identificación de usuario de 1000 en adelante y comencé a usar Linux en 2005. No lo llamaría "reciente".
Mirek Długosz
¿Qué te hace pensar que 100 es estático en Debian? Al mirar un par de mis sistemas, me parece dinámico (en uno era systemd-timesync, en otro era sshd).
lavar el
Cuando la pregunta se editó a las 12:22 UTC, el OP agregó la etiqueta [osx] junto con la mención de OS X en el cuerpo de la pregunta. Su respuesta se publicó diez minutos más tarde y parece no tener esto en cuenta en absoluto.
un CVn