En sistemas tipo Unix , se pueden agrupar varios usuarios . Los permisos de los sistemas de archivos POSIX y Unix convencionales se organizan en tres clases: usuario , grupo y otros . El uso de grupos permite delegar capacidades adicionales de forma organizada, como el acceso a discos, impresoras y otros periféricos . Este método, entre otros, también permite al superusuario delegar algunas tareas administrativas a usuarios normales, de forma similar al grupo Administradores de Microsoft Windows NT y sus derivados.
Un identificador de grupo , a menudo abreviado como GID , es un valor numérico utilizado para representar un grupo específico. [1] El rango de valores para un GID varía entre los diferentes sistemas; como mínimo, un GID puede estar entre 0 y 32.767, con una restricción: el grupo de inicio de sesión para el superusuario debe tener un GID 0. Este valor numérico se utiliza para hacer referencia a grupos en los archivos /etc/passwd
y /etc/group
o sus equivalentes. Los archivos de contraseñas shadow y el Servicio de información de red también hacen referencia a GID numéricos. El identificador de grupo es un componente necesario de los sistemas de archivos y procesos de Unix .
En los sistemas Unix, cada usuario debe ser miembro de al menos un grupo, el grupo primario , que se identifica por el GID numérico de la entrada del usuario en la base de datos passwd, que se puede ver con el comando getent passwd
(normalmente almacenado en /etc/passwd
o LDAP ). Este grupo se conoce como el ID del grupo primario . Un usuario puede aparecer como miembro de grupos adicionales en las entradas relevantes de la base de datos de grupos, que se pueden ver con getent group
(normalmente almacenado en /etc/group
o LDAP ); los ID de estos grupos se conocen como ID de grupo suplementarios .
Los procesos Unix tienen un ID efectivo (EUID, EGID), uno real (UID, GID) y uno guardado (SUID, SGID). Normalmente son idénticos, pero en los procesos setuid
y setgid
son diferentes.
Originalmente, se utilizaba un entero de 16 bits con signo. Como el signo no era necesario (los números negativos no constituyen identificadores de grupo válidos), ahora se utiliza un entero sin signo, lo que permite identificadores de grupo entre 0 y 65.535. Los sistemas operativos modernos suelen utilizar enteros sin signo de 32 bits, que permiten identificadores de grupo entre 0 y 4.294.967.295.
Muchos sistemas Linux reservan el rango de números GID de 0 a 99 para grupos asignados estáticamente, y de 100 a 499 o de 100 a 999 para grupos asignados dinámicamente por el sistema en scripts posteriores a la instalación. Estos rangos suelen especificarse en /etc/login.defs
, for useradd
y groupadd
herramientas similares.
En FreeBSD, los porteadores que necesitan un GID para su paquete pueden elegir uno gratuito del rango 50 a 999 y luego registrar esta asignación estática en puertos/GID. [2]
(gid_t) -1
está reservado por POSIX para identificar un argumento omitido. [3]Muchos administradores de sistemas asignan también a cada usuario un grupo personal primario que tiene el mismo nombre que el nombre de inicio de sesión del usuario y, a menudo, también tiene el mismo GID numérico que el UID del usuario. Estos grupos personales no tienen otros miembros y facilitan la colaboración con otros usuarios en directorios compartidos, al permitir que los usuarios trabajen habitualmente con umask 0002
. De esta manera, los archivos recién creados pueden tener de forma predeterminada permisos de escritura habilitados para los miembros del grupo, porque esto normalmente solo habilitará el acceso de escritura para los miembros del grupo personal, es decir, solo para el propietario del archivo. Sin embargo, si se crea un archivo en un directorio compartido que pertenece a otro grupo y tiene el bit setgid establecido , entonces el archivo creado también se volverá automáticamente escribible para los miembros del grupo de ese directorio.
En muchos sistemas Linux, la USERGROUPS_ENAB
variable en /etc/login.defs
controla si los comandos como useradd
o userdel
agregan o eliminan automáticamente un grupo personal asociado.