Linux / Unix: Como cambiar permisos en archivos o directorios (chmod)


Para saber qué permisos tiene asociado un archivo o directorio basta con ejecutar el comando ls -l en el bash como se muestra en el siguiente ejemplo:

Podemos ver que:

  • En la primera columna aparecen los permisos asociados: -rwxr-xr-x
  • En la tercera columna indica el usuario: root
  • En la cuarta columna indica el grupo: root

Veamos la explicación detallada del significado de estos permisos que aparecen en la primera columna y pueden separarse en cuatro grupos:

Donde:

  • r: Significa permisos de lectura (read)
  • w: Significa permisos de escritura (write)
  • x: Significa permisos de ejecución (execution)

Los tipos de ficheros pueden ser:

Símbolo
Tipo de fichero
d
Directorio
b
Archivo de bloques especiales
c
Archivo de caracteres especiales
p
Archivo especial de cauce
l
Enlace simbólico
s
Conexiones del dominio local (socket)
Archivo (binario, de texto…)

A continuación se muestran diferentes comandos para la gestión de usuarios, grupos y permisos. Si pinchas en cada uno de ellos podrás obtener información más detallada de cada uno de ellos:

  • groupadd: Añade un grupo con el nombre asignado.
  • groupdel: Elimina un grupo ya existente.
  • groupmod: Modifica los parámetros de los grupos.
  • adduser: Añade un usuario.
  • userdel: Elimina un usuario.
  • usermod: Edita un usuario.
  • chown: Modifica el propietario de un directorio.
  • chgrp: Modifica el grupo al que pertenece un directorio.
  • chmod: Modifica los permisos de un archivo.

Por tanto, para la modificación de permisos, necesitaremos usar este último, el chmod (change mode), cuya sintaxis es:

$ chmod [modificadores] permisos fichero/directorio

Para ello hay que tener en cuenta a quién y qué tipo de permisos se le asocian:

El siguiente es un ejemplo práctico en el que se han añadido permisos de ejecución para el dueño (u), grupo (g) y el resto de los usuarios (o) a un archivo:

No obstante, la manera más fácil es que en el modificador del chmod se especifique en base a la siguiente tabla de códigos binarios:

Y por tanto, el mismo ejemplo anterior se podría ejecutar también de la siguiente forma:

$ chmod 751 anonymous-128.png

Dando permisos totales al dueño (snow), permisos de lectura y ejecución a los usuarios pertenecientes al grupo (snow) y únicamente de ejecución al resto de usuarios.

Agradecer a Byron Jonathan Vázquez por su colaboración en este artículo.

Dejar un Comentario