Comando Chattr en Linux (atributos de archivo)

Comando Chattr en Linux

Comando Chattr en Linux (atributos de archivo)

En Linux, los atributos de archivo son propiedades de metadatos que describen el comportamiento del archivo. Por ejemplo, un atributo puede indicar si un archivo está comprimido o especificar si el archivo se puede eliminar.

Algunos atributos, como la inmutabilidad, se pueden establecer o borrar, mientras que otros, como el cifrado, son de solo lectura y solo se pueden ver. 

El soporte para ciertos atributos depende del sistema de archivos que se utilice.

Este artículo explica cómo usar el comando chattr para cambiar los atributos de los archivos en los sistemas de archivos de Linux.

Sintaxis chattr 

El comando chattr toma la siguiente forma general:

chattr [OPTIONS] [OPERATOR][ATTRIBUTES] FILE...

El valor de la parte [OPERATOR] puede ser uno de los siguientes símbolos:

  • + – El operador más (+) le dice al chattr que agregue atributos especificados a los existentes.
  • - – El operador menos (-) le dice al chattr que elimine los atributos especificados de los existentes.
  • = – El operador de igualdad le dice al chattr que establezca los atributos especificados como los únicos atributos.

El operador va seguido de uno o más indicadores [ATTRIBUTES] que desea agregar o eliminar de los atributos del archivo. 

A continuación se muestra una lista de algunos atributos comunes y banderas asociadas:

  • a – Cuando se establece este atributo, el archivo solo se puede abrir en modo adjunto para escritura.
  • A– Cuando un archivo con este conjunto de atributos está abierto, su registro de hora no cambia. atime (tiempo de acceso) es la última vez que se accedió / abrió el archivo mediante algún comando o aplicación.
  • e– Este atributo indica que el archivo está usando extensiones para mapear los bloques en el disco. El atributo e no se puede modificar con chattr.
  • i – Este atributo indica que el archivo es inmutable, lo que significa que el archivo no se puede eliminar ni cambiar de nombre.

Para obtener una lista completa de todos los atributos y banderas del archivo, escriba en su terminal. man chattr

De forma predeterminada, los atributos de archivo no se conservan al copiar un archivo con comandos como cp o rsync .

Uno de los usos comunes de chattr es establecer la bandera inmutable en un archivo o directorio para evitar que los usuarios eliminen o cambien el nombre del archivo.

Ejemplo chattr

Puede ver los atributos del archivo con el comando: lsattr

lsattr todo.txt

El resultado a continuación muestra que solo ese establece la bandera:

--------------e----- todo.txt

Para hacer que el archivo sea inmutable, agregue la bandera i con el operador + a los atributos existentes:

sudo chattr +i todo.txt

Estamos usando sudo porque root solo puede cambiar la bandera inmutable.

Confirme que se agrega el atributo:

lsattr todo.txt
----i---------e----- todo.txt

Para revertir los cambios y eliminar la bandera inmutable, use el operador: -

sudo chattr +i todo.txt

Con chattr, puede agregar o eliminar varios atributos a la vez. 

Por ejemplo, para hacer que el archivo sea inmutable y decirle al kernel que no rastree la última vez que se accedió, usaría:

sudo chattr +iA todo.txt

El último operador que puede utilizar es el operador = 

Por ejemplo, para establecer el atributo e como único atributo, ejecutaría:

sudo chattr "=e" todo.txt

Observe que el operador y la bandera están entre comillas, para evitar la interpretación de shell del carácter +.

Notas Finales

chattr es una herramienta de línea de comandos para cambiar los atributos de archivo en un sistema de archivos de Linux.

Comando Chattr en Linux

Cualquier duda escríbenos un ticket de soporte