Entendiendo los permisos de archivos de Linux y cómo gestionarlos.
Uno de los fundamentos clave de la seguridad del sistema Linux y la arquitectura multiusuario es su modelo de permisos de archivo. A diferencia de Windows, Linux aplica estrictamente la propiedad y el control de acceso para cada archivo y directorio en el sistema. Dominar los permisos de archivo no solo es cuestión de seguridad, sino que es esencial para gestionar servidores, desplegar software, ejecutar scripts y automatizar tareas.
El Modelo de Permisos de Archivo de Linux
Cada archivo y directorio en Linux tiene tres tipos de derechos de acceso, asignados a tres tipos de usuarios:
| Clase de Usuario | Descripción |
|---|---|
| propietario | El usuario que posee el archivo |
| grupo | Usuarios en el grupo del archivo |
| otros | Todos los demás usuarios en el sistema |
Cada clase puede recibir tres tipos de permisos:
| Permiso | Símbolo | Significado |
|---|---|---|
| leer | r | Ver contenido del archivo / listar dir |
| escribir | w | Modificar archivo o directorio |
| ejecutar | x | Ejecutar archivo o acceder al directorio |
Visualizando Permisos con ls -l
Usa el comando ls -l para mostrar los permisos de archivo:
ls -l myscript.sh
Salida:
-rwxr-xr-- 1 alice devs 2048 Jan 25 10:00 myscript.sh
Desglose:
- – → archivo regular
- rwx → propietario (leer/escribir/ejecutar)
- r-x → grupo (leer/ejecutar)
- r– → otros (solo lectura)
Cambiando Permisos con chmod
📌 Modo Simbólico:
chmod u+x myscript.sh # Add execute to user chmod g-w myscript.sh # Remove write from group chmod o=r myscript.sh # Set read-only for others
📌 Modo Numérico:
chmod 755 myscript.sh # rwx for owner, rx for group, rx for others
| Octal | Significado |
|---|---|
| 7 | rwx |
| 6 | rw- |
| 5 | r-x |
| 4 | r– |
| 0 | — |
Ejemplo:
chmod 644 file.txt # owner: rw-, group: r--, others: r-- chmod 700 script.sh # owner: rwx, group/others: ---
Gestionando Propiedad con chown y chgrp
Cambiar propietario del archivo:
chown alice file.txt
Cambiar grupo:
chgrp devs file.txt
Cambiar ambos:
chown bob:admins file.txt
Usa -R para aplicar cambios recursivamente:
chown -R www-data:www-data /var/www/
Bits de Permiso Especial
Linux soporta tres modos especiales que modifican el comportamiento por defecto:
1. SUID (Set User ID)
- Se aplica a archivos ejecutables
- Se ejecuta con los privilegios del propietario, no del llamador
chmod u+s /usr/bin/passwd
🔍 salida de ls -l: -rwsr-xr-x
Caso de uso: /usr/bin/passwd debe ejecutarse como root para actualizar /etc/shadow.
SGID (Set Group ID) s
- En archivos: se ejecuta con el privilegio de grupo del archivo
- En directorios: los nuevos archivos heredan el grupo
chmod g+s /opt/project
🔍 salida de ls -l: drwxr-sr-x
Útil en carpetas de desarrollo compartidas.
Sticky Bit t
- En directorios: solo el propietario puede eliminar/renombrar sus archivos
- Común en /tmp para proteger archivos de usuario
chmod +t /shared/folder
ls -ld /tmpdrwxrwxrwt 10 root root 4096 Jan 28 12:00 /tmp
Entendiendo umask
El umask establece permisos por defecto para nuevos archivos/directorios:
Verificar valor actual: umask
Valor común: 0022
| Archivo | Permisos por defecto | Con umask 0022 |
|---|---|---|
| Archivo | 666 → 644 | rw-r–r– |
| Dir | 777 → 755 | rwxr-xr-x |
Establecer umask temporal:
umask 0077 # Files: 600, Dirs: 700
Correcciones de Permisos Recursivas
Establecer permisos de carpeta y archivo por separado:
find /my/project -type d -exec chmod 755 {} ; find /my/project -type f -exec chmod 644 {} ;
Conclusión
Los permisos de archivo de Linux proporcionan un control de acceso detallado para la seguridad, entornos multiusuario y automatización. Entender cómo ver, cambiar y hacer cumplir permisos te empodera para gestionar servidores con confianza, proteger datos y colaborar de manera segura.
Ya sea que estés desplegando aplicaciones web, gestionando servidores en la nube o construyendo scripts de shell, conocer tu camino alrededor de chmod, chown, umask y bits de permiso especiales es esencial.
