Guías y tutoriales

Cientos de tutoriales y guías paso a paso cuidadosamente escritas por nuestro equipo de soporte.

Cómo cambiar los permisos de un archivo o directorio en Linux

En este manual aprenderemos a cambiar los permisos de cualquier archivo en un sistema operativo GNU/Linux a través de la línea de comandos.

Sin embargo, antes de mencionar cualquier tipo de comando, deberemos aprender acerca del funcionamiento del sistema de permisos en sistemas operativos GNU / Linux. Te lo mostramos a continuación:

1. Tipos de permisos

En concreto existen tres tipos de permisos que un archivo o directorio en linux puede tener asignado:

  • Permiso de lectura: permite al usuario leer el archivo o, en directorios, listar el contenido.
  • Permiso de escritura: permite al usuario modificar el archivo o, en directorios, añadir archivos al directorio o modificar el propio directorio.
  • Permiso de ejecución: permite ejecutar archivos (por ejemplo scripts de BASH) o, en directorios, tener acceso a este (aunque no necesariamente listar el contenido si no se dispone de permiso de lectura).

2. Tipos de usuarios

Los tres tipos de permisos que hemos listado a continuación pueden ser activados o desactivados en cada archivo/directorio para cualquiera de los tres tipos de usuarios que mencionaremos a continuación:

  • Propietario: designado como el propietario del archivo / directorio.
  • Grupo: grupo de usuarios al que pertenece el archivo / directorio.
  • Otro: cualquier otro usuario del sistema.

3. Combinaciones de permisos y usuarios

Como ya hemos explicado en el apartado anterior, estos tres tipos de usuarios y estos tres tipos de permisos pueden ser asignados libremente.

Por ejemplo, el propietario del archivo/directorio puede tener permisos de lectura, escritura y ejecución mientras que otros usuarios del sistema solo pueden tener permisos de lectura. Cualquier combinación de estos tres permisos y tres usuarios es posible, brindando un total de 512 combinaciones posibles.

4. Cambiar permisos de un archivo o directorio

Finalmente, para asignar estos permisos utilizaremos el comando "chmod".

Importante: Para poder cambiar los permisos de un archivo o directorio se debe ser propietario o usuario con privilegios de administración. Solo el propietario o usuarios de tipo 'root' pueden cambiar los permisos de un archivo / directorio.

El comando chmod tiene la siguiente sintaxis: chmod [permiso a asignar o retirar] nombredearchivo

Los símbolos usados para describir un permiso son los siguientes:

Permisos:
r: lectura
w: escritura
x: ejecución

Usuarios:
u: propietario
g: grupo
o: otros
a: todos los anteriores

Así pues la abreviación "u+w" indicaría que se desea asignar el permiso de escritura al propietario. Otros ejemplos y combinaciones:

  • o+x (asigna el permiso de ejecución a "otros")
  • a-x (elimina el permiso de ejecución a todos los usuarios)
  • g-w (elimina el permiso de ejecución a los miembros del grupo al que pertenece el archivo)
  • u+r (otorga permisos de lectura al propietario)

Conociendo estas abreviaturas, ahora podremos utilizar el comando "chmod" de la siguiente manera:

chmod u+x nombredearchivo

Este comando otorgaría permiso de ejecución al archivo "nombredearchivo" al propietario del mismo.

Múltiples permisos pueden ser otorgados a múltiples usuarios al mismo tiempo de este modo:

chmod ug+wrx nombredearchivo

Este comando otorgaría permisos de lectura, escritura y ejecución (permisos completos) tanto al propietario como a los miembros del grupo al archivo "nombredearchivo".

Finalmente, cabe destacar la utilidad de la opción "-R" que aplica estos permisos de forma recursiva a cualquier archivo que se encuentre dentro de un directorio. Por ejemplo:

chmod -R u+wx nombrededirectorio

Este comando aplica los permisos de escritura y ejecución para el propietario a cualquier archivo o directorio contenido dentro de "nombrededirectorio", inclusive a archivos/directorios contenidos en niveles inferiores.

Nota: el comando "chmod" dispone de un llamado "mod octal" que permite asignar permisos mediante el uso de números. Esta información estará detallada en otro manual de usuario.