Entiendo* que el usuario administrador principal recibe una identificación de usuario de 501
y los usuarios posteriores obtienen números incrementales ( 502
,, 503
…). Pero por qué 501
? ¿Qué tiene de especial 50x
? ¿Cuál es la razón histórica/técnica de esta elección?
* Empecé a investigar esto cuando sentí curiosidad por saber por qué mi disco duro externo tenía todos sus archivos basura en su interior .Trashes/501
. Mi búsqueda me llevó a la conclusión de 501
que es el ID de usuario del administrador principal en sistemas *nix (estoy en macOS), pero nopor qué.
Respuesta1
Muchos sistemas Unix comienzan a entregar UID a los usuarios en un número determinado. Solaris le dará al primer usuario de propósito general UID 100, en OpenBSD es 1000 y en macOS parece que el UID 501 será el UID para el primer usuario interactivo creado, que probablemente también 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 demonios, 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 gestión de usuarios, la autenticación, etc. en diversos programas.YP/NIS, un sistema ligeramente obsoleto para mantener cuentas de usuario (y otra información) en un servidor central sin tener que crear usuarios locales en varias máquinas cliente, por ejemplo, tiene una configuración MINUID
y MAXUID
para el rango de cuentas de usuario que debe manejar.
En algunos Unices, se puede asignar una variedad de cuentas de servicios del sistema a software de terceros, como los UID del 50 al 999 en FreeBSD o del 500 al 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 (y GID) asignable más bajo y más alto suele ser configurable por un administrador local (consulte su adduser
manual).
La mayoría de Unices reservan el UID 0 para root
, el superusuario, y asignan el UID más alto posible (o al menos algún valor alto) al usuario nobody
(Solaris usa el UID 60001, OpenBSD usa 32768, pero los UID pueden sermuchomás grande que eso).
(Vea los comentarios acerca de que el UID 0 siempre está root
(o no), lo cual es una ligera digresión de este tema)
Actualización: El proyecto OpenBSDrecientemente rechazadola idea de asignar aleatoriamente UID/GID.
Respuesta2
Para distribuciones que siguen elLSB, 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, a los demonios de impresión como estos cups
se les suele asignar su propia cuenta de usuario. Entonces, si se explota una vulnerabilidad en el demonio, el demonio no se ejecuta root
con pleno 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 amplía hasta 999.
Esto dejaría UID 500 en adelante (o 1000 en adelante) para las cuentas de inicio de sesión.
Debian además tiene unestáticoasignación paraUIDGID 100, aunque no puedo imaginar que esa desviación cause ningún problema en particular.
Es fácil imaginar otro sistema con una desviación de uno en uno, 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 a él :). Se podría decir que la "cuenta de administrador principal" es root
en ese caso. Aparte de eso, *nix y las distribuciones de Linux de propósito general no reconocen una "cuenta de administrador principal" específica.