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:
- groupname: Nombre del grupo
- password: x (en /etc/gshadow, raramente usado)
- GID: ID del grupo
- 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