En Linux, todo es un archivo, y la seguridad del sistema se basa fuertemente en quién tiene acceso a qué. Entender cómo funcionan los permisos y cómo modificarlos con chmod es una habilidad fundamental para cualquier usuario de la terminal.
Anatomía de los Permisos
Cuando ejecutas el comando ls -l en la terminal, verás una cadena de 10 caracteres a la izquierda de cada archivo (por ejemplo, drwxr-xr-x). Esta cadena nos cuenta toda la historia sobre los permisos.
El Primer Carácter: Tipo de Archivo
El primer símbolo indica qué tipo de elemento es:
-: Archivo normal (texto, script, imagen).d: Directorio (carpeta).l: Enlace simbólico (acceso directo).
Los Siguientes Nueve Caracteres: Niveles de Acceso
Estos se dividen en tres bloques de tres caracteres cada uno:
- Owner (Usuario/Dueño): El creador o dueño actual del archivo.
- Group (Grupo): Usuarios que pertenecen al grupo asignado al archivo.
- Others (Otros/Todos): Cualquier otro usuario del sistema.
Ejemplos prácticos:
- Permisos totales a un archivo para todos:
-|rwx|rwx|rwx(Todos pueden leer, escribir y ejecutar). - Permiso solo para el dueño de una carpeta:
d|rwx|---|---(Nadie más puede acceder). - Permiso para el dueño y su grupo:
d|rwx|rwx|---(Otros usuarios están bloqueados).
¿Qué significan los permisos (r, w, x)?
Es importante notar que los permisos actúan diferente si se aplican a un archivo o a un directorio:
| Permiso | Letra | En un Archivo significa… | En un Directorio (Carpeta) significa… |
| Lectura | r | Puedes ver el contenido del archivo. | Puedes listar los archivos dentro (ls). |
| Escritura | w | Puedes modificar o borrar el archivo. | Puedes crear, borrar o renombrar archivos dentro. |
| Ejecución | x | Puedes ejecutarlo como un programa/script. | Puedes “entrar” al directorio (cd). |
Modificando permisos con chmod
El comando chmod (Change Mode) nos permite cambiar estos permisos. Existen dos formas de hacerlo: el Modo Simbólico y el Modo Numérico (Octal).
Modo Simbólico (Usando letras)
Este método es ideal para añadir o quitar permisos específicos sin afectar el resto.
1. ¿A quién le cambiamos el permiso?
u: Usuario (owner)g: Grupoo: Otrosa: All (equivalente augo)
2. ¿Qué operación haremos?
+: Añadir permisos-: Quitar permisos=: Asignar permisos exactos (sobrescribe los anteriores)
3. ¿Qué permiso asignamos?
r,w,x
Ejemplos:
# Quitar permisos de escritura a "otros" en un archivo
chmod o-w archivo.txt
# Dar permisos de ejecución al "usuario" y al "grupo"
chmod ug+x script.sh
# Asignar que el grupo solo pueda leer (sobrescribe otros permisos del grupo)
chmod g=r documento.pdf
Modo Numérico u Octal (El método rápido)
Este es el método favorito de los administradores de sistemas. Usa números del 0 al 7 para representar los permisos, sumando valores:
- Lectura (
r) = 4 - Escritura (
w) = 2 - Ejecución (
x) = 1 - Sin permiso (
-) = 0
Para dar permisos, simplemente sumas los números para cada bloque (Dueño, Grupo, Otros):
rwx= 4 + 2 + 1 = 7rw-= 4 + 2 + 0 = 6r-x= 4 + 0 + 1 = 5
Ejemplos con chmod octal:
# Permiso total para el dueño (7), lectura/ejecución para grupo (5) y otros (5)
chmod 755 script.sh
# Lectura/escritura para el dueño (6), solo lectura para grupo (4) y otros (4)
chmod 644 archivo.txt
# Permiso total para todos (¡Peligroso en la mayoría de los casos!)
chmod 777 archivo_publico.txt
Permisos Especiales y Herencia
Además de los permisos básicos, Linux tiene permisos especiales útiles para trabajo colaborativo y seguridad avanzada.
Herencia de Grupo (SetGID – g+s)
Cuando un directorio tiene el SetGID activado, cualquier archivo nuevo creado dentro de esa carpeta heredará el grupo de la carpeta, en lugar del grupo del usuario que lo creó. Es ideal para carpetas compartidas por un equipo de trabajo.
# Aplicar SetGID a una carpeta colaborativa
sudo chmod g+s carpeta_compartida
(Si haces un ls -l, verás que la x del grupo se convierte en una s: drwxr-sr-x)


