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