Tutorial de Grupos de Trabajo en Linux Ubuntu

 

¡Excelente pregunta! Los grupos son fundamentales para gestionar permisos de manera organizada. Te explico todo sobre grupos de trabajo. 👥

¿Qué son los grupos en Linux?

Los grupos son colecciones de usuarios que comparten permisos similares. En lugar de asignar permisos usuario por usuario, los asignamos al grupo.

Ver información de grupos

Ver a qué grupos perteneces:

bash
groups

Ver todos los grupos del sistema:

bash
cat /etc/group

Ver información detallada de un usuario:

bash
id usuario

Estructura del archivo /etc/group

Cada línea tiene este formato:

text
nombre_grupo:contraseña:ID_grupo:miembros

Ejemplo:

text
desarrolladores:x:1001:ana,carlos,luis

Gestión de grupos

Crear un nuevo grupo:

bash
sudo groupadd nombre_grupo

Eliminar un grupo:

bash
sudo groupdel nombre_grupo

Agregar usuario a un grupo:

bash
sudo usermod -aG nombre_grupo nombre_usuario

¡Importante! El parámetro -aG es crucial para no eliminar los grupos existentes del usuario.

Quitar usuario de un grupo:

bash
sudo gpasswd -d nombre_usuario nombre_grupo

Relación entre grupos y permisos de archivos

Ejemplo práctico:

Imagina que tenemos:

  • Usuarios: ana, carlos, luis

  • Grupo: desarrolladores

  • Archivo: proyecto.txt

bash
# 1. Crear el grupo
sudo groupadd desarrolladores

# 2. Agregar usuarios al grupo
sudo usermod -aG desarrolladores ana
sudo usermod -aG desarrolladores carlos
sudo usermod -aG desarrolladores luis

# 3. Crear un archivo y asignar el grupo
touch proyecto.txt
sudo chown :desarrolladores proyecto.txt

# 4. Dar permisos al grupo
chmod 664 proyecto.txt  # Propietario y grupo pueden leer/escribir

Escenarios prácticos de trabajo en equipo

Escenario 1: Proyecto de desarrollo

bash
# Crear grupo para el proyecto
sudo groupadd proyecto_web

# Agregar desarrolladores
sudo usermod -aG proyecto_web ana
sudo usermod -aG proyecto_web carlos

# Crear carpeta del proyecto
mkdir /home/proyecto_web
sudo chown :proyecto_web /home/proyecto_web
chmod 775 /home/proyecto_web

Escenario 2: Departamento de contabilidad

bash
# Crear grupo contabilidad
sudo groupadd contabilidad

# Agregar contadores
sudo usermod -aG contabilidad maria
sudo usermod -aG contabilidad jose

# Carpeta compartida para documentos
mkdir /home/documentos_contables
sudo chown :contabilidad /home/documentos_contables
chmod 770 /home/documentos_contables  # Solo el grupo tiene acceso

Comandos útiles para gestión de grupos

Ver miembros de un grupo:

bash
getent group nombre_grupo

Cambiar grupo principal de un usuario:

bash
sudo usermod -g nombre_grupo nombre_usuario

Cambiar grupo de un archivo/directorio:

bash
chgrp nombre_grupo archivo.txt

Ejemplo completo paso a paso

Vamos a crear un sistema de colaboración para un equipo:

bash
# 1. Crear grupo de trabajo
sudo groupadd equipo_marketing

# 2. Agregar usuarios al grupo
sudo usermod -aG equipo_marketing luis
sudo usermod -aG equipo_marketing ana

# 3. Crear directorio compartido
sudo mkdir /opt/marketing
sudo chown :equipo_marketing /opt/marketing
sudo chmod 2775 /opt/marketing  # El '2' activa el sticky bit para herencia

# 4. Verificar que todo funciona
ls -ld /opt/marketing
# Deberías ver: drwxrwsr-x

# 5. Crear un archivo de prueba
touch /opt/marketing/planificacion.txt
ls -l /opt/marketing/planificacion.txt

El sticky bit y herencia de grupos

El sticky bit (número 2 al principio de chmod) hace que:

  • Los nuevos archivos hereden el grupo del directorio padre

  • Es esencial para trabajo colaborativo

bash
# Activar sticky bit para herencia de grupo
chmod 2775 directorio_compartido

Permisos recomendados para trabajo en equipo

EscenarioPermisosDescripción
Lectura compartida664Todos leen, grupo y propietario escriben
Colaboración total775Grupo completo puede leer/escribir/ejecutar
Privado al grupo770Solo el grupo tiene acceso completo
Archivos ejecutables774Grupo puede leer/ejecutar pero no escribir

Consejos importantes

  1. Siempre usa -aG al agregar usuarios a grupos adicionales

  2. Los cambios de grupo requieren que el usuario cierre y abra sesión

  3. Usa newgrp para cambiar temporalmente de grupo en una sesión:

    bash
    newgrp nombre_grupo
  4. Planifica la estructura de grupos antes de implementar

  5. Documenta qué grupos existen y para qué sirven

Verificación final

Para asegurarte de que todo funciona:

bash
# Ver grupos de un usuario
groups usuario

# Ver permisos efectivos
ls -la /ruta/compartida

# Verificar que nuevos archivos heredan el grupo correcto
touch /ruta/compartida/test.txt
ls -l /ruta/compartida/test.txt

Comentarios

Entradas más populares de este blog

ejercicios-Crear Carpeta y Archivo de Texto en Ubuntu

Instalar Docker en Ubuntu Server usando docker.io

Tutorial de Carpetas y Directorios en Ubuntu Linux