Contenido del curso
Archivos y directorios
Busqueda en la terminal
Funcionamiento de la terminal
Sistema operativo
- 14

Permisos de archivos en Linux con chmod
Viendo ahora - 15

Variables de entorno en Bash explicadas
08:27 min - 16

Uso de APT para gestionar paquetes en Linux
07:36 min - 17

Homebrew: gestor de paquetes para Mac
07:22 min - 18

Foreground y background en la terminal
06:39 min - 19

Cómo identificar y matar procesos en Linux
13:01 min
Utilidades del sistema
Bonus: Trucos y consejos extras
Permisos de archivos en Linux con chmod
Resumen
Si trabajas con Linux o macOS, entender los permisos de archivos es clave para proteger tu sistema y ejecutar scripts sin errores. Aquí aprenderás cómo leerlos, modificarlos con chmod y aplicar las configuraciones más seguras desde la terminal.
¿Qué son los permisos en Linux y cómo se leen?
Los permisos en Linux indican qué puede hacer cada usuario, grupo o recurso con un archivo o directorio. Para verlos, ejecuta ls -la en la terminal y observa la cadena de letras al inicio de cada línea.
Esa cadena se divide en cuatro bloques. El primer carácter indica si es un archivo (-) o un directorio (d). Luego vienen tres grupos de tres caracteres cada uno:
- Los primeros tres definen los permisos del usuario propietario, por ejemplo codebars.
- Los siguientes tres corresponden al grupo de usuarios.
- Los últimos tres aplican a others o world, normalmente procesos y servicios externos como un sistema de bases de datos.
¿Qué significan las letras r, w y x en los permisos? La
res read (lectura), lawes write (escritura) y laxes execute (ejecución). Cada una se asigna por separado a usuario, grupo y otros.
¿Cómo cambio los permisos de un archivo con chmod?
La mejor forma de practicar es creando un script de shell. Por ejemplo, guarda un archivo llamado script.sh con un simple comando. La extensión .sh indica que es un script de bash shell.
Al listarlo verás que solo tiene permisos de lectura y escritura para tu usuario. Si intentas ejecutarlo con ./script.sh, la terminal responderá permission denied. Esto pasa porque cualquier archivo recién creado nunca tiene permisos de ejecución por defecto.
Para solucionarlo, usa:
bash chmod +x script.sh
El modificador +x añade el permiso de ejecución a usuario, grupo y otros al mismo tiempo. Cuando un script ya es ejecutable y tu terminal usa colores, normalmente lo verás resaltado en verde al hacer ls -la.
¿Es seguro usar chmod +x para todos?
No siempre. Aplicar +x de forma global puede ser peligroso si solo quieres que tu usuario ejecute el script. Por eso conviene usar la notación numérica, que da control fino sobre cada nivel de permiso.
¿Cómo funcionan los permisos numéricos en chmod?
La notación numérica de chmod se basa en valores binarios asignados a cada letra:
r(read) vale 4.w(write) vale 2.x(execute) vale 1.
Estos números vienen de potencias de 2: 2², 2¹ y 2⁰. La suma máxima por bloque es 7, que equivale a rwx completo. Si quieres negar todo, usa 0.
La configuración se escribe con tres dígitos, uno por cada bloque (usuario, grupo, otros). Por ejemplo:
700: el usuario tiene todos los permisos, grupo y otros no tienen ninguno.777: todos pueden leer, escribir y ejecutar. Es la combinación más peligrosa y rara vez se recomienda, aunque a veces se ve en producción.755: el usuario hace todo, grupo y otros solo leen y ejecutan. Es una de las configuraciones más comunes para scripts compartidos.744: similar a 755, pero grupo y otros solo pueden leer.
¿Cuál es la configuración de permisos más recomendada para scripts? Usa
755cuando necesites que otros usuarios puedan leer y ejecutar el script, pero solo tú puedas modificarlo. Es el estándar para scripts compartidos en sistemas Linux.
Para aplicarla, simplemente ejecuta:
bash chmod 755 script.sh
¿Por qué chmod recursivo puede dar error en Linux?
La opción -R de chmod aplica cambios de forma recursiva a una carpeta y todo su contenido. Suena útil, pero los sistemas Linux modernos suelen bloquearla por seguridad.
Si intentas algo como chmod -R 777 textos, es probable que veas el mensaje operation not permitted. Esto ocurre porque modificar permisos en cascada puede romper scripts, archivos de configuración o exponer datos sensibles.
¿Qué hacer en su lugar? Tienes varias alternativas más seguras:
- Cambiar permisos archivo por archivo de forma manual.
- Usar
findcon un patrón de búsqueda y aplicarchmodsolo a los resultados que necesites. - Crear un script de bash shell que recorra archivos específicos y modifique sus permisos uno a uno.
La regla de oro es asignar siempre el mínimo de permisos necesarios. Esto reduce riesgos de seguridad y evita conflictos al gestionar directorios. Recuerda que incluso para entrar a una carpeta con cd necesitas permiso de ejecución sobre ese directorio.
¿Ya probaste configurar permisos en tus propios scripts? Cuéntame en los comentarios qué combinación usas más seguido y si te ha tocado lidiar con un permission denied inesperado.