Permisos de acceso: chmod, chown, chgrp, chattr

...

Introducción

Cada archivo y directorio tiene un sistema de permisos que controla quién puede leer, modificar o ejecutar ese recurso

Cada archivo tiene tres tipos de usuarios:

  • usuario (u) → propietario del archivo
  • grupo (g) → grupo al que pertenece el archivo
  • otros (o) → resto de usuarios del sistema

Y tres tipos de permisos:

  • r → lectura (read)
  • w → escritura (write)
  • x → ejecución (execute)

Ejemplo:


-rwxr-xr--
      

Significado:

  • - → tipo de archivo (- archivo, d directorio)
  • rwx → permisos del usuario (lectura, escritura, ejecución)
  • r-x → permisos del grupo (lectura y ejecución)
  • r-- → permisos de otros (solo lectura)

Los permisos también se pueden representar con números:

  • r = 4
  • w = 2
  • x = 1

Por ejemplo:


chmod 755 archivo
      

Equivale a:

  • 7 (rwx) → usuario
  • 5 (r-x) → grupo
  • 5 (r-x) → otros

Permisos en directorios

En directorios, los permisos tienen un significado especial:
  • r → ver contenido (listar archivos)
  • w → crear o eliminar archivos dentro
  • x → acceder (entrar con cd)

Una vez entendido el sistema, se utilizan los siguientes comandos de este apartado.

chmod

Modifica los permisos de acceso de archivos o directorios.

Sintaxis:


$ chmod permisos fichero
      

Ejemplo:


$ chmod 755 script.sh
      

Este comando: da permisos de lectura, escritura y ejecución al propietario y lectura + ejecución al grupo y otros

Ejemplo 2:


$ chmod u+x archivo.sh
      

añade permiso de ejecución al usuario propietario del fichero

Opciones comunes:

  • -R → aplica cambios de forma recursiva

chown

Cambia el propietario de un archivo o directorio.

Ejemplo:


# chown juan archivo.txt
      

Este comando asigna al archivo archivo.txt el usuario juan como propietario.

Ejemplo 2:


# chown juan:devs archivo.txt
      

Este comando cambia usuario y grupo a la vez para ese archivo.

Opciones comunes:

  • -R → aplica cambios de forma recursiva

chgrp

Cambia el grupo propietario de un archivo o directorio.

Ejemplo de uso:


$ chgrp devs archivo.txt
      

Este comando: asigna el grupo devs al archivo

Opciones comunes:

  • -R → aplica cambios de forma recursiva

chattr

Modifica atributos especiales de archivos en sistemas de archivos como ext4.

Ejemplo de uso:


# chattr +i archivo.txt
      

Este comando: hace el archivo inmutable (no se puede modificar ni borrar)

Ejemplo de uso 2:


# chattr -i archivo.txt
      

Este comando: elimina el atributo inmutable (ya se puede modificar y borrar)

Opciones comunes:

  • +i → inmutable
  • +a → solo permite añadir contenido

Comandos cambio de permisos por consola

Permisos especiales: suid, sgid, sticky bit.

Índice de la sección

Índice del curso