Comando chmod Linux

linux_base_web

Hola a todos, hoy os explicare a usar el comando chmod de Linux, un comando que nos permite modificar los permisos de ficheros y directorios.

Esto que haremos vale para cualquier distribución de Linux. Lo primero que haremos es abrir la pantalla de comandos, para ello abrimos el terminal de Linux, según la distribución su localización sera distinta. Nos deberá aparecer esto:

terminal GNU Linux

Antes de seguir, pincha aquí para ir al manual Rutas relativas y absolutas, donde explico las rutas que necesitamos saber como van para usar correctamente los comandos.

Cuando empecemos a escribir en el terminal, estaremos situados en la carpeta personal de nuestro usuario, dentro de la carpeta home.

Vamos a tomar como referencia un pequeño sistema de ficheros.

sistema directorio linux

La sintaxis de este comando es chmod [grupo_usuario] [+|-|=] [permiso] [directorio|fichero]

En Linux los permisos están divididos en:

  • Permisos de lectura (r): nos permite ver el fichero o directorio pero no modificarlo.
  • Permisos de escritura (w): nos permite modificar el fichero o directorio.
  • Permisos de ejecución (x): nos permite ejecutar el fichero, este permiso solo se usa para ficheros binarios ejecutables y ficheros scripts.

También tenemos 3 tipos de usuarios diferenciados en Linux:

  • User o usuario (u): es el dueño del fichero o directorio, es decir, quien lo creo.
  • Group o grupo (g): es un grupo de usuarios al que pertenece el dueño del fichero o directorio.
  • Other o otro (o): son el resto de usuarios, que no esta en el grupo de usuarios del dueño.

Para visualizar los permisos  de un directorio o fichero usamos ls -l nos aparecerá algo así.

comando chmod ejemplo

Vemos que el permiso esta formado por 10 caracteres, el primero determina el tipo de archivo es, como un fichero (-), un directorio (d), un enlace (l), etc. Los tres siguientes son los permisos de lectura, escritura y ejecución del usuario (u, el dueño), en ese orden, los 3 siguientes los mismos permisos para el grupo de usuarios (g) y el resto son los permisos del resto de usuarios (o).

Si no tienen permisos en lugar de la letra del permiso se escribe un guion. Por defecto, al crear un fichero los permisos por defecto son -rw-rw-r–, al crear un directorio por defecto, los permisos son drwxrwxr-x.

Para asignar o quitar permisos a un tipo de usuario, escribiremos los tipos de usuarios a los que queremos asignar o quitar los permisos, + (para asignar) o (para eliminar) o = (para igualar) y el tipo de permiso que queremos asignar.

Por ejemplo, chmod go+wx documento1 esto da permisos de escritura y ejecución al grupo de usuarios y al resto de usuarios en el documento1, dejandolo algo así: -rw-rwxrwx

NOTA: el símbolo =, elimina aquellos permisos que no estén incluidos en el comando, por eso es un igual, ya que iguala todos los permisos por igual, si no se indica usuario afecta a todos y el único que no escribe permisos es sobre el permiso de escritura al resto de usuarios.

Otra forma de asignar o quitar permisos de una forma mas rápida  es usando números, por cada tipo de usuario, este numero indica los permisos que tiene, es la representación binaria de los permisos. Aquí os dejo una tabla de equivalencia:

NumeroPermisos
0---
1--x
2-w-
3-wx
4r--
5r-x
6rw-
7rwx

Por ejemplo, si escribimos chmod 666 documento1, es lo mismo que escribir chmod ugo+rw documento1. Lo mejor de este comando es que tuviéramos que añadir o eliminar distintos tipos de permisos tendríamos que hacerlos en varios comandos, solo lo haríamos en uno solo.

Veamos algunos ejemplos prácticos, para que sea mas fácil de comprender.

Supongamos que queremos asignar permisos de ejecución al usuario y al grupo de usuarios al documento1.txt, usando una ruta absoluta.

comando chmod captura 1

Supongamos que ahora queremos quitar los permisos de lectura al resto de usuarios y los permisos de escritura al grupo de usuarios al documento5 , usando una ruta relativa estando en la carpeta3.

comando chmod captura 2

Supongamos que queremos añadir todos los permisos a todos los usuarios al documento6.txt, usando una ruta relativa estando en la carpeta de nuestro usuario en el home.

Podemos hacerlo como hasta ahora.

comando chmod captura 3

También lo podemos hacer con números.

comando chmod captura 4

O incluso lo podríamos hacer usando el operador de igual, aunque tendríamos que hacer una operación de mas.

comando chmod captura 5

Espero que os sea de ayuda. Si teneis dudas, preguntad. Estamos para ayudarte.

Etiquetas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *