system onlinepath: /guias/linux/permisos-y-propietarios-de-archivos-en-linux/mode: knowledge_baselocal:
Linux y sistemas · Nivel inicial

Permisos y propietarios de archivos en Linux

En Linux cada archivo tiene un propietario, un grupo y un conjunto de permisos que deciden quién puede leerlo, modificarlo o ejecutarlo. Entenderlos es la base de la seguridad del sistema.

12 min de lectura▣ Actualizada el ◇ Por Underc0de
Respuesta rápida

En Linux, cada archivo y carpeta pertenece a un usuario y a un grupo, y tiene tres conjuntos de permisos que deciden qué puede hacer cada quien: el propietario (u), el grupo (g) y el resto (o, «otros»). Los permisos son tres: leer (r), escribir (w) y ejecutar (x). Cuando ejecutás ls -l, la primera columna —algo como -rwxr-xr--— resume todo eso: el primer carácter dice si es archivo o directorio, y los nueve siguientes son los permisos de propietario, grupo y otros, en ese orden. Para cambiarlos se usa chmod (change mode), que acepta dos notaciones: la simbólica (chmod g+w archivo) y la numérica u octal (chmod 644 archivo, donde cada dígito suma r=4, w=2, x=1). Para cambiar el dueño se usa chown (chown ana:equipo archivo). La regla de oro es el mínimo privilegio: dar solo los permisos necesarios. Y una advertencia: chmod 777 —que da todo a todos— casi nunca es la solución y suele ser un agujero de seguridad.

Ver índice de contenidos
  1. 01Qué son los permisos
  2. 02Leer un ls -l
  3. 03Cambiar permisos con chmod
  4. 04Cambiar dueños con chown
  5. 05Errores frecuentes
  6. 06Preguntas frecuentes
  7. 07Fuentes

Qué son los permisos

Linux es un sistema multiusuario: varias personas (y servicios) pueden usar la misma máquina, así que necesita reglas sobre quién puede hacer qué con cada archivo. Esas reglas son los permisos, y se organizan en dos ejes.

Tres «quiénes» y tres «qué»

Los tres «quiénes» son: el propietario del archivo (normalmente quien lo creó), el grupo al que pertenece (un conjunto de usuarios), y otros (todos los demás). Los tres «qué» son: leer (ver el contenido), escribir (modificarlo o borrarlo) y ejecutar (correrlo como programa, o —en un directorio— entrar en él). Cada «quién» tiene su propia combinación de esos tres permisos.

Leer un ls -l

Anatomía de la salida del comando ls guion l en Linux, explicada campo por campo para entender los permisos de un archivo. Se muestra una línea de ejemplo típica con sus columnas señaladas. La primera columna es la cadena de diez caracteres que describe el tipo y los permisos. Su primer carácter indica el tipo: un guion significa archivo normal, la letra d significa directorio, y la letra l significa enlace simbólico. Los nueve caracteres siguientes se dividen en tres grupos de tres. El primer grupo de tres corresponde al propietario o usuario, abreviado u. El segundo grupo de tres corresponde al grupo, abreviado g. El tercer grupo de tres corresponde a otros, es decir el resto de los usuarios, abreviado o. Dentro de cada grupo de tres, las posiciones son siempre en el mismo orden: la primera es r de lectura, la segunda es w de escritura y la tercera es x de ejecución; si el permiso está concedido aparece la letra correspondiente, y si no lo está aparece un guion en su lugar. Por ejemplo, la cadena guion r w x r guion x r guion guion significa: es un archivo normal; el propietario puede leer, escribir y ejecutar; el grupo puede leer y ejecutar pero no escribir; y otros solo pueden leer. A la derecha de la cadena de permisos, la salida de ls guion l muestra otras columnas: el número de enlaces, el nombre del usuario propietario, el nombre del grupo propietario, el tamaño del archivo, la fecha y hora de la última modificación, y finalmente el nombre del archivo. El diagrama resalta que leer esta primera columna de izquierda a derecha permite saber de un vistazo quién puede hacer qué con el archivo, que es la base para entender y ajustar la seguridad del sistema. Debajo se recuerda la equivalencia numérica u octal: cada permiso vale un número, la lectura vale cuatro, la escritura vale dos y la ejecución vale uno, y sumándolos dentro de cada grupo se obtiene el dígito correspondiente, de modo que r w x suma siete, r guion x suma cinco y r guion guion suma cuatro, lo que da el conjunto siete cinco cuatro para este ejemplo. Estilo oscuro de terminal, con la cadena de permisos destacada en colores por grupo.
La primera columna de ls -l: un carácter de tipo y tres grupos de rwx para propietario, grupo y otros. Leerla de izquierda a derecha dice quién puede hacer qué.

El comando ls -l lista los archivos con sus permisos. La primera columna es la clave. Tomemos -rwxr-xr--:

  • Primer carácter (-): el tipo. - es archivo normal, d un directorio, l un enlace simbólico.
  • Caracteres 2-4 (rwx): permisos del propietario. Aquí puede leer, escribir y ejecutar.
  • Caracteres 5-7 (r-x): permisos del grupo. Puede leer y ejecutar, no escribir.
  • Caracteres 8-10 (r--): permisos de otros. Solo leer.

Un guion (-) en cualquier posición significa que ese permiso no está concedido. Las columnas siguientes muestran el propietario, el grupo, el tamaño, la fecha y el nombre.

Cambiar permisos con chmod

chmod («change mode») cambia los permisos. Tiene dos notaciones equivalentes:

# Notación simbólica: quién (u/g/o/a) + operación (+/-/=) + permiso (r/w/x)
chmod g+w informe.txt      # añade escritura al grupo
chmod o-r secreto.txt      # quita lectura a otros
chmod u+x script.sh        # hace ejecutable para el propietario
chmod a=r publico.txt      # todos solo lectura (a = all)

# Notación numérica (octal): r=4, w=2, x=1, se suman por grupo
chmod 644 archivo.txt      # propietario rw- (6), grupo r-- (4), otros r-- (4)
chmod 755 script.sh        # propietario rwx (7), grupo r-x (5), otros r-x (5)
chmod 600 clave_privada    # solo el propietario lee y escribe; nadie más ve nada

La notación numérica es la más usada porque es compacta: cada dígito representa un grupo (propietario, grupo, otros) y se obtiene sumando los valores de los permisos: leer 4, escribir 2, ejecutar 1. Así, 7 = 4+2+1 = rwx; 6 = 4+2 = rw-; 5 = 4+1 = r-x. Para aplicar cambios a una carpeta y todo su contenido se usa -R (recursivo), con cuidado.

!
Por qué chmod 777 casi nunca es la respuesta

chmod 777 da lectura, escritura y ejecución a todo el mundo. Suele usarse «para que algo funcione de una vez», pero abre el archivo a cualquier usuario o proceso del sistema, incluido software malicioso. Casi siempre el problema real es de propietario (se resuelve con chown) o de un permiso concreto que falta. Dar 777 es tapar el síntoma creando un agujero.

Cambiar dueños con chown

chown («change owner») cambia el propietario y, opcionalmente, el grupo de un archivo. Requiere privilegios de administrador (sudo) para dar algo a otro usuario.

sudo chown ana archivo.txt        # cambia solo el propietario a "ana"
sudo chown ana:equipo archivo.txt # propietario "ana", grupo "equipo"
sudo chown :equipo archivo.txt    # cambia solo el grupo
sudo chown -R ana:equipo /var/www # recursivo: carpeta y todo su contenido

Un caso muy típico: al copiar archivos a la carpeta de un servidor web, quedan como propiedad de root y el servicio web no puede leerlos. La solución correcta es un chown al usuario del servicio —no un chmod 777—. Ver la guía de configurar un servidor web en Linux.

Errores frecuentes

  • Usar chmod 777 para «arreglar» permisos. Abre un agujero; casi siempre el problema es de propietario. Usar chown o el permiso concreto.
  • Confundir el orden de los grupos. Siempre es propietario, grupo, otros, de izquierda a derecha.
  • Olvidar el permiso de ejecución en directorios. Sin x en una carpeta no se puede entrar en ella, aunque tenga r.
  • Dejar claves privadas legibles por otros. Una clave SSH debe ser 600; si es más abierta, muchas herramientas la rechazan.
  • Aplicar -R sin pensar. Un chmod recursivo mal puesto rompe permisos de todo un árbol; revisar antes.
  • Editar como root todo el tiempo. Trabajar con el usuario normal y usar sudo solo cuando hace falta.
  • Confundir «no puedo borrar» con permiso del archivo. Borrar depende del permiso de escritura del directorio, no del archivo.

Preguntas frecuentes

¿Qué significan las letras rwx en Linux?

Las letras rwx representan los tres tipos de permiso que se pueden conceder sobre un archivo o directorio en Linux. La letra r significa read, es decir lectura, y permite ver el contenido de un archivo o, en el caso de un directorio, listar los archivos que contiene. La letra w significa write, es decir escritura, y permite modificar el contenido de un archivo o, en un directorio, crear, renombrar y borrar archivos dentro de él. La letra x significa execute, es decir ejecución, y en un archivo permite ejecutarlo como si fuera un programa, mientras que en un directorio tiene un significado especial y necesario: permite entrar en él y acceder a su contenido. Estos tres permisos aparecen siempre en el mismo orden, r luego w luego x, y se repiten en tres bloques, uno para el propietario del archivo, otro para el grupo y otro para el resto de los usuarios. Cuando un permiso está concedido aparece su letra, y cuando no lo está aparece un guion en su lugar. Entender estas letras es la base para leer la salida del comando ls guion l y para ajustar la seguridad de los archivos del sistema.

¿Cómo se leen los números de chmod, como 644 o 755?

Los números de chmod son la notación octal de los permisos, y se leen dígito por dígito, donde cada dígito corresponde a uno de los tres grupos de usuarios en el orden habitual: el primer dígito es para el propietario, el segundo para el grupo y el tercero para otros. El valor de cada dígito se obtiene sumando los números asignados a cada permiso concedido: la lectura vale 4, la escritura vale 2 y la ejecución vale 1. Así, para el permiso 644, el primer dígito 6 es 4 más 2, es decir lectura y escritura para el propietario; el segundo dígito 4 es solo lectura para el grupo; y el tercer dígito 4 es solo lectura para otros, lo que corresponde a la cadena rw-r--r-- y es un valor muy típico para archivos de datos. Para el permiso 755, el 7 es 4 más 2 más 1, es decir lectura, escritura y ejecución para el propietario; y los dos 5, que son 4 más 1, dan lectura y ejecución al grupo y a otros, lo que corresponde a rwxr-xr-x y es el valor habitual para programas y scripts que todos deben poder ejecutar pero solo el dueño modificar. Una vez memorizados los valores 4, 2 y 1, calcular cualquier combinación es una simple suma.

¿Cuál es la diferencia entre chmod y chown?

chmod y chown actúan sobre aspectos distintos y complementarios de la seguridad de un archivo. chmod, que viene de change mode, cambia los permisos, es decir, define qué acciones —leer, escribir o ejecutar— puede realizar cada categoría de usuario sobre el archivo, pero no cambia quién es el propietario ni a qué grupo pertenece. chown, que viene de change owner, hace lo contrario: cambia la titularidad del archivo, es decir, quién es su propietario y, opcionalmente, a qué grupo pertenece, pero no toca los permisos en sí. La distinción es importante porque muchos problemas que a primera vista parecen de permisos son en realidad de propiedad. Por ejemplo, si un servicio web no puede leer sus propios archivos, a menudo la causa no es que falten permisos de lectura, sino que los archivos pertenecen a otro usuario, como root, y la solución correcta es usar chown para asignarlos al usuario del servicio, en lugar de abrir los permisos con un chmod permisivo. En la práctica, ambos comandos se usan juntos para lograr el objetivo de seguridad deseado: chown define de quién es el archivo y chmod define qué puede hacer cada quien con él, y solo el propietario del archivo o el administrador del sistema pueden modificar estos atributos.

¿Por qué chmod 777 es peligroso?

chmod 777 concede los tres permisos, lectura, escritura y ejecución, a las tres categorías de usuarios, es decir al propietario, al grupo y a otros, lo que en la práctica significa que cualquier usuario del sistema, y cualquier proceso que se ejecute en él, puede leer, modificar, borrar y ejecutar ese archivo. Este nivel de apertura total es peligroso porque elimina cualquier control de acceso sobre el archivo, y por tanto viola el principio de mínimo privilegio, que establece que cada usuario y proceso debe tener únicamente los permisos estrictamente necesarios para su función. Un archivo con permisos 777 puede ser alterado o reemplazado por software malicioso o por cualquier cuenta comprometida del sistema, y si se trata de un script o de un archivo que un servicio ejecuta, esto puede convertirse en una vía directa para ejecutar código no autorizado. El problema se agrava porque suele aplicarse por comodidad, para hacer que algo funcione rápidamente sin diagnosticar la causa real, que casi siempre es una cuestión de propietario incorrecto o de un permiso concreto que falta. La solución adecuada es identificar qué usuario o grupo necesita realmente el acceso y conceder solo el permiso mínimo mediante chown y un chmod ajustado, en lugar de abrir el archivo a todo el sistema.

¿Por qué necesito permiso de ejecución en una carpeta?

En el caso de los directorios, el permiso de ejecución, la x, no significa ejecutar la carpeta como un programa, sino algo distinto y fundamental: permite atravesar o entrar en el directorio para acceder a su contenido. Esto genera una situación que sorprende a mucha gente al principio, porque los permisos de lectura y ejecución sobre un directorio cumplen funciones diferentes. El permiso de lectura sobre una carpeta permite listar los nombres de los archivos que contiene, pero sin el permiso de ejecución no se puede acceder realmente a esos archivos ni entrar en subdirectorios, de modo que se pueden ver los nombres pero no usar lo que hay dentro. A la inversa, con permiso de ejecución pero sin lectura, se puede acceder a un archivo concreto si se conoce su nombre exacto, pero no se puede obtener la lista de lo que contiene la carpeta. Por eso, para que una carpeta sea plenamente utilizable, normalmente se necesitan al menos los permisos de lectura y ejecución juntos, que corresponden al dígito 5 en notación octal, o a rwx con el dígito 7 si además se quiere poder crear y borrar archivos dentro. Este comportamiento explica por qué a veces un usuario puede ver que un archivo existe pero recibe un error de permiso denegado al intentar abrirlo: le falta el permiso de ejecución en alguna carpeta del camino.

¿Qué permisos debe tener una clave privada de SSH?

Una clave privada de SSH debe tener permisos muy restrictivos, concretamente 600 en notación octal, lo que corresponde a lectura y escritura únicamente para el propietario, sin ningún permiso para el grupo ni para otros. La razón es que la clave privada es un secreto que da acceso a los sistemas remotos donde está autorizada la clave pública correspondiente, de modo que si otros usuarios del sistema pudieran leerla, podrían copiarla y suplantar la identidad de su dueño. Este requisito es tan importante que el propio cliente de SSH lo comprueba activamente: si detecta que una clave privada tiene permisos demasiado abiertos, por ejemplo legible por el grupo o por otros, se niega a usarla y muestra un error advirtiendo de que los permisos son demasiado permisivos, precisamente para proteger al usuario de exponer su secreto por descuido. Por eso, al generar o copiar claves, conviene asegurarse de que la clave privada quede con permisos 600 y de que la carpeta que la contiene, habitualmente el directorio oculto de configuración de SSH del usuario, tenga permisos 700, es decir accesible solo por su propietario. La clave pública, en cambio, no es secreta y puede tener permisos más abiertos sin problema. Este es un buen ejemplo de cómo los permisos de Linux protegen directamente la seguridad de las credenciales.

Fuentes

Documentación oficial y material de la comunidad consultados para esta guía. Fecha de consulta: 28 de julio de 2026.

Aportes de la comunidad Underc0de

  1. Underc0de, foro. Sección GNU/Linux. Dudas sobre permisos y administración.
  2. Underc0de, blog. Blog de la comunidad. Artículos de sistemas y terminal.

Documentación oficial

  1. The Linux Documentation Project. File permissions. Explicación de referencia de los permisos.
  2. GNU Coreutils. chmod. Manual oficial del comando.
  3. GNU Coreutils. chown. Manual oficial de cambio de propietario.
  4. Arch Wiki. File permissions and attributes. Guía práctica ampliada.