Linux chmod Ejemplo

En este rápido tutorial, veremos cómo podemos utilizar el comando chmod en una máquina Ubuntu para encontrar, modificar y eliminar los permisos de usuario de archivos específicos que existen en el sistema de archivos del usuario. Vamos a jugar a través de varias condiciones para que podamos dominar los comandos chmod básicos que pueden hacer nuestra vida cotidiana más fácil con Ubuntu.

Linux Permisos

Linux Permisos son un gran conjunto de reglas que son simples de entender si captamos los derechos básicos. Los tres puntos principales que tenemos que entender para saber cómo funcionan los permisos de Linux son:

  • El elemento para el que se definieron los permisos
  • Qué acciones se pueden realizar con un permiso
  • Quién puede realizar qué acciones

Hay dos elementos básicos en el Sistema de Archivos de Linux:

  1. Directorios
  2. Archivos

Hay tres acciones que se pueden realizar:

  1. Leer
  2. Escribir
  3. Ejecutar. Aparte de ejecutar scripts, las mismas acciones son necesarias para crear ficheros y otras carpetas dentro de él

Los usuarios que pueden realizar estas acciones son:

  1. Propietario del fichero
  2. Grupo del propietario del fichero
  3. Usuario que no está asociado al grupo propietario o al propio propietario

Para ver los permisos relacionados con un fichero, ejecutar el siguiente comando:

ls -l

Esto es lo que obtenemos con este comando:

Encontrar permiso para archivos

Encontrar permiso para archivos

En la salida, los primeros 10 caracteres presentan el permiso para el archivo:

  • El primer carácter, que es ‘-‘ en este caso significa que se trata de un archivo. Para un directorio, habría sido una ‘d’.
  • Los nueve caracteres siguientes representan los permisos para el propietario, el grupo del propietario y otros, respectivamente.

Modificación de permisos

La sintaxis para modificar el permiso de un archivo tiene el siguiente aspecto:

chmod permisos archivo …

Representación octal para los permisos

Podemos presentar los permisos como un número octal. Por ejemplo, para establecer permisos de lectura, escritura & ejecución para el propietario, permisos de lectura & escritura para su grupo, y ningún permiso para los demás, a un fichero hello.txt, ejecutaremos el siguiente comando:

sudo chmod 760 hello.txt

Una vez que ejecutamos el comando anterior e intentamos leer un archivo con una cuenta no propietaria utilizando el siguiente comando:

sudo -u notowner-user more hello.txt

Obtendremos el siguiente error:

hello.txt: Permiso denegado

¿Pero de dónde sale ese número? Cada dígito de ese número representa un conjunto de permisos. Veamos cómo se derivaron:

  • 0: Significa ningún permiso
  • 1: Significa el permiso de ejecución
  • 2: Significa el permiso de escritura
  • 4: Significa el permiso de lectura

Para asignar los permisos de lectura, escritura & ejecución para el propietario, le asignamos el número 7(= 4 + 2 + 1). Vamos a entender mejor esto en una tabla de dígitos:

Número Binario Lectura Escritura Ejecución
0 000 NO NO NO
1 001 NO NO
2 010 NO NO
3 011 NO
4 100 NO NO
5 101 NO
6 110 NO
7 111

La tabla anterior es mucho más clara en cuanto a lo que representa cada uno en términos de permisos de archivo.

Representación de caracteres para los permisos

Podemos presentar los permisos como un número octal. Por ejemplo, para establecer permisos de lectura, escritura & ejecución para el propietario, permisos de lectura & escritura para su grupo, y ningún permiso para los demás, a un fichero hello.txt, ejecutaremos el siguiente comando:

sudo chmod u=rwe,g=rw,o-rwx hello.txt

Para añadir permisos a un usuario existente, también podemos hacer:

sudo chmod g+w hola.txt

Aquí, el permiso de escritura se estaba asignando al grupo de usuarios del propietario del archivo.

Cambios de permisos recursivos

También podemos cambiar los permisos de los archivos contenidos en un directorio específico con un solo comando. Para modificar los permisos de todos y cada uno de los archivos y carpetas de un directorio proporcionado de una sola vez, utilice sudo chmod con -R:

sudo chmod 777 Directorio/*

Podemos ver la siguiente salida que refleja claramente el cambio en los permisos de los archivos:

Cambiando recursivamente los permisos de los archivos

Cambiando recursivamente los permisos de los archivos

Conclusión

En esta lección, vimos cómo podemos modificar los permisos de un archivo y si es necesario, hacerlo recursivamente. Entendimos los conceptos básicos detrás de los permisos de Linux que pueden ayudarnos mucho en nuestro trabajo diario.

Deja un comentario