Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Permisos de acceso Fundamentos de la línea de comandos

En esta lección vamos a hablar de algo que todos vamos a encontrar más temprano que tarde cuando usamos Linux: los permisos de archivos y directorios. Si alguna vez has intentado crear o modificar un archivo y has visto errores como Permission denied ❌, esta lección es para ti.


¿Por qué a veces no podemos modificar archivos en Linux?

Supongamos este caso:

touch /etc/myfile

Al ejecutarlo, tal vez veamos un error como:

touch: cannot touch '/etc/myfile': Permission denied

¿Qué significa este mensaje? Que el usuario con el que estamos trabajando no tiene permiso para crear archivos en ese directorio. Y esto no depende del archivo, sino del sistema de permisos de Linux.


¿Qué son los permisos?

En Linux, cada archivo y directorio tiene permisos que definen quién puede:

  • Leer (r- read)
  • Escribir (w - write)
  • Ejecutar (x - execute)

Estos permisos están organizados para tres tipos de usuarios:

Tipo de usuario ¿Quién es?
Usuario (propietario)Quien creó el archivo o a quien pertenece
GrupoOtros usuarios que están en el mismo grupo
Otros (otros usuarios)Cualquier otro usuario del sistema

Veamos un ejemplo real

Si ejecutamos el siguiente comando en una terminal:

ls -la

Posiblemente veamos algo como esto:

-rw-r--r-- 1 miguel.m miguel.m 3771 Aug 31  2015 .bashrc

Vamos a descomponer la parte de los permisos (lo más a la izquierda):

Parte Significado
-Es un archivo (si fuera un directorio veríamos d)
rw-El propietario puede leer y escribir
r--El grupo puede solo leer
r--Todos los demás también pueden solo leer

Es decir, solo "miguel.m", el dueño, puede modificar el archivo. Los demás solo pueden verlo.


¿Qué permisos se necesitan para eliminar un archivo?

Algo que puede parecer raro al principio: para eliminar un archivo, no importa si tienes permisos sobre el archivo — lo que importa son los permisos del directorio que lo contiene.

Por ejemplo, si un archivo está en /home/miguel, debemos revisar los permisos de ese directorio con:

ls -la /home/ | grep miguel

Y puede mostrar algo como:

drwxr-xr-x  5 miguel.m miguel.m 4096 Aug 29 11:34 miguel.m

La primera letra d indica que es un directorio.

Los siguientes permisos se leen así:

  • rwx para el propietario: puede leer, escribir y entrar al directorio.
  • r-x para el grupo y otros: pueden entrar y leer su contenido, pero no modificarlo.

Permisos de archivo


¿Qué significan r, w y x en los directorios?

Aquí hay un detalle importante: estos permisos tienen un significado específico cuando se aplican a directorios.

Permiso ¿Qué permite hacer en un directorio?
rVer los nombres de los archivos dentro del directorio
xEntrar al directorio y acceder a archivos si se tiene permiso sobre ellos
wCrear, borrar o renombrar archivos dentro del directorio

Entonces, para eliminar un archivo dentro de un directorio, necesitamos tener permiso de escritura (w) en el directorio, no en el archivo que vamos a borrar.


Permisos en formato numérico

Además del formato con letras (rwx), Linux permite usar números para definir permisos. A esto se le llama "modo octal".

Cada permiso tiene un valor binario, que luego se representa como un número decimal:

Número Permisos Binario
7rwx111
6rw-110
5r-x101
4r--100
3-wx011
2-w-010
1--x001
0---000

Por ejemplo:

chmod 755 script.sh

Este comando da permisos rwx al propietario y r-x a grupo y otros.


Comandos útiles para gestionar permisos

Aquí te mostramos dos comandos que vamos a usar mucho para manejar permisos:

Cambiar propietario con chown

Con este comando le cambiamos el dueño a un archivo. Por ejemplo:

chown miguel .bashrc

Ahora, el archivo .bashrc le pertenece al usuario miguel.

Cambiar permisos con chmod

Para modificar los permisos de un archivo o directorio:

chmod +r archivo.txt  # Agrega permiso de lectura
chmod -x archivo.sh   # Quita permiso de ejecución
chmod 644 archivo.txt # Ajusta permisos usando el modo numérico

Si no tienes permiso para hacer esto, deberás usar sudo o hacerlo como un usuario con más privilegios (como root).



Resumen

  • Cada archivo y directorio en Linux tiene permisos de lectura (r), escritura (w) y ejecución (x).
  • Estos permisos se asignan al propietario, al grupo y a otros usuarios.
  • Eliminar un archivo requiere permiso de escritura en el directorio donde se encuentra, no en el archivo en sí.
  • En directorios, el permiso x permite entrar; r permite ver su contenido; w permite modificar lo que hay dentro.
  • Los permisos también se pueden expresar numéricamente (por ejemplo, 755).
  • Los comandos chmod y chown nos ayudan a cambiar los permisos y propietarios.

Este conocimiento es clave si queremos trabajar con servidores, administrar sistemas Linux o simplemente mantener seguros nuestros archivos. ¡Seguimos aprendiendo!


Materiales adicionales

  1. Chown 📚 Wikipedia
  2. Chmod 📚 Wikipedia

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY