El sistema de permisos de Linux se basa en el principio del privilegio mínimo. Esto significa que los usuarios y procesos deben tener acceso estrictamente a lo que necesitan para trabajar, reduciendo la superficie de ataque en caso de vulnerabilidades.
En esta guía práctica, abordamos cómo crear usuarios, agruparlos y controlar el acceso a archivos y directorios utilizando comandos esenciales de la terminal.
1. Creación y Administración de Usuarios
Nunca ejecute su aplicación ni comparta cuentas utilizando el usuario root directamente. Cree cuentas individuales y con privilegios limitados.
Comandos útiles:
- Crear usuario:
sudo adduser nombre_usuario
(El comando adduser crea automáticamente la carpeta home del usuario y solicita la creación de la contraseña). - Eliminar usuario:
sudo deluser nombre_usuario - Agregar usuario al grupo sudo (administrador):
sudo usermod -aG sudo nombre_usuario
2. Creación y Administración de Grupos
Los grupos facilitan el intercambio de directorios entre múltiples usuarios (por ejemplo, desarrolladores que necesitan editar los mismos archivos de un sitio web en WordPress).
Cómo estructurar:
- Cree el grupo de trabajo:
sudo groupadd devteam - Agregue los usuarios al grupo:
sudo usermod -aG devteam usuario1sudo usermod -aG devteam usuario2
3. Cambio de Propietarios de Archivos con chown
Cada archivo y carpeta en Linux pertenece a un usuario y a un grupo. El comando chown (change owner) cambia esta propiedad.
Uso práctico:
Para establecer el usuario www-data y el grupo devteam como propietarios de una carpeta de aplicación web de forma recursiva (todas las subcarpetas): sudo chown -R www-data:devteam /var/www/misitio
4. Administración de Permisos con chmod
El comando chmod (change mode) define quién puede leer (r), escribir (w) o ejecutar (x) archivos y directorios.
Los permisos se distribuyen en tres clases:
- Propietario (User - u)
- Grupo (Group - g)
- Otros (Others - o)
Representación Numérica (Octal):
4= Leer (read)2= Escribir (write)1= Ejecutar (execute)
Sumando los valores, generamos el permiso. Por ejemplo:
7(4+2+1): Permiso total (leer, escribir y ejecutar).6(4+2): Leer y escribir.5(4+1): Leer y ejecutar.4: Solo leer.
Ejemplos comunes de chmod:
chmod 755 archivo.sh: Permite que el propietario haga todo, mientras que el grupo y otros solo pueden leer y ejecutar (común para scripts públicos).chmod 600 id_rsa: Permite que solo el propietario lea y escriba en el archivo (obligatorio para llaves privadas SSH).chmod -R 775 /var/www: Otorga permiso total al propietario y al grupo de desarrollo, y lectura/ejecución a otros.
Conclusión
Mantener el control correcto de propietarios y permisos es uno de los pilares de la seguridad de cualquier servidor Linux. Aplicar el chown y chmod correctos evita brechas de seguridad en archivos confidenciales sin interferir con el funcionamiento de sus aplicaciones.