Saltar al contenido principal

Capítulo 5.2 - Gestión de Grupos

Objetivos de Aprendizaje​

Al finalizar este capítulo, usted será capaz de:

  • Comprender el sistema de grupos en Linux
  • Crear y eliminar grupos
  • Añadir/quitar usuarios de los grupos
  • Comprender el grupo principal vs grupos secundarios
  • Utilizar los grupos para los permisos

Introducción​

Los grupos permiten agrupar usuarios para compartir permisos y recursos.

Ventajas:

  • Permisos compartidos
  • Gestión simplificada
  • Acceso controlado a los recursos

Tipos de Grupos​

Grupo Principal (Primary Group)​

Características:

  • Un usuario tiene un solo grupo principal
  • Definido en /etc/passwd (GID)
  • Se crea automáticamente con el usuario
  • Generalmente tiene el mismo nombre que el usuario

Grupos Secundarios (Supplementary Groups)​

Características:

  • Un usuario puede pertenecer a varios grupos
  • Definidos en /etc/group
  • Permisos adicionales
  • Acceso a recursos adicionales

Archivo /etc/group​

Formato​

# Format: groupname:password:GID:members
root:x:0:
users:x:100:user1,user2
developers:x:1001:user1,user3,user4
sudo:x:27:user1,user2
www-data:x:33:

Campos:

  1. groupname: Nombre del grupo
  2. password: x (en /etc/gshadow, raramente usado)
  3. GID: ID del grupo
  4. members: Lista de miembros (separados por comas)

Crear un Grupo​

groupadd​

# Grupo simple
sudo groupadd developers

# Con GID específico
sudo groupadd -g 2000 developers

# Verificar GID disponible
sudo groupadd -g 2000 developers # Error si existe

# Sistema (GID < 1000)
sudo groupadd -r systemgroup

Modificar un Grupo​

groupmod​

# Cambiar GID
sudo groupmod -g 2001 developers

# Renombrar
sudo groupmod -n newname oldname

# Verificar
getent group developers

Eliminar un Grupo​

groupdel​

# Eliminar grupo
sudo groupdel developers

# Nota: No se puede eliminar si es grupo principal de un usuario

Gestionar los Miembros​

Añadir un Usuario​

# Añadir a un grupo (mantiene otros grupos)
sudo usermod -aG developers user1
# -a: append (añadir, no reemplazar)
# -G: grupos secundarios

# Verificar
groups user1
id user1

Quitar un Usuario​

# Quitar de un grupo (manualmente)
# Editar /etc/group o usar gpasswd

sudo gpasswd -d user1 developers

Ver los Miembros​

# Miembros de un grupo
getent group developers
grep developers /etc/group

# Grupos de un usuario
groups user1
id user1
groups # Usuario actual

Grupo Principal vs Secundarios​

Cambiar Grupo Principal​

# Cambiar grupo principal
sudo usermod -g developers user1

# Verificar
id user1
# uid=1000(user1) gid=1001(developers) groups=1001(developers),1002(sudo)

Nuevos Archivos​

Regla:

  • Los nuevos archivos se crean con el grupo principal del usuario
  • Puede cambiarse temporalmente con newgrp
# Cambiar grupo efectivo temporalmente
newgrp developers

# Verificar
groups # developers aparece primero

Comandos Útiles​

getent​

# Información del grupo
getent group developers

# Todos los grupos
getent group

# Verificar si el grupo existe
getent group developers && echo "Existe"

id​

# Información del usuario
id
id user1

# Formato: uid=1000(user1) gid=1000(user1) groups=1000(user1),27(sudo),1001(developers)

groups​

# Grupos del usuario actual
groups

# Grupos de un usuario
groups user1

Casos de Uso Prácticos​

Grupo para Proyecto​

# Crear grupo para proyecto
sudo groupadd projet-alpha

# Añadir miembros
sudo usermod -aG projet-alpha dev1
sudo usermod -aG projet-alpha dev2

# Crear directorio compartido
sudo mkdir /srv/projet-alpha
sudo chgrp projet-alpha /srv/projet-alpha
sudo chmod 775 /srv/projet-alpha

# Los miembros ahora pueden colaborar

Grupo Administradores​

# Añadir al grupo sudo
sudo usermod -aG sudo user1

# Verificar
groups user1
# user1 sudo

# Ahora puede usar sudo

Resumen​

En este capítulo, usted ha aprendido:

Grupos: Agrupación de usuarios para permisos compartidos
Tipos: Principal (uno solo) vs Secundarios (varios)
Archivos: /etc/group para configuración
Creación: groupadd
Modificación: groupmod
Miembros: usermod -aG, gpasswd -d
Comandos: getent, id, groups


Próximos Pasos​

Capítulo 5.3: Permisos Avanzados
Capítulo 5.4: ACL (Access Control Lists)


Capítulo creado el: diciembre 2024