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.

Antes de empezar con el tutorial, ¿no tienes un servidor Cloud con Linux? ¡No te preocupes! Con solo un clic, puedes desplegarlo fácilmente con SW Hosting.

cta:cloud_so

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 mostraremos 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 o modificar el propio directorio.
  • Permiso de ejecución: permite ejecutar archivos (por ejemplo scripts de BASH) o en directorios tener acceso a éste (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 mencionado anteriormente 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 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 factible brindando un total de 512 posibles combinaciones.

4. Cambiar permisos de un archivo o directorio

Finalmente, para asignar estos permisos utilizaremos el comando chmod.

info 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í, 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 y 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.

info 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.

Recuerda que si no dispones aun de un servidor Cloud con Linux puedes desplegarlo fácilmente con SW Hosting.

cta:cloud_so