Tutorial de comandos de Linux chattr para principiantes (5 ejemplos)
Muchas veces, una máquina Linux es utilizada por diferentes usuarios. Entonces, hay posibilidades de que estos usuarios accedan a un conjunto común de archivos. Esto abre la puerta a problemas como la eliminación accidental o la edición de archivos importantes, algo que usted, como administrador, definitivamente no desearía que sucediera.
Afortunadamente, existe un comando, denominado chattr – que está desarrollado para ayudarte específicamente en este tipo de escenarios. En este tutorial, discutiremos esta herramienta usando algunos ejemplos fáciles de entender, incluyendo cómo el comando chattr sirve para modificar los atributos de archivos de manera que puedas controlar el acceso a los mismos. Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos aquí se probaron en Ubuntu 18.04 LTS y Debian 10.
El comando chattr de Linux
Básicamente, chattr linux se usa para cambiar los atributos de los archivos en un sistema de archivos de Linux. A continuación se muestra su sintaxis:
chattr [ -RVf ] [ -v version ] [ mode ] files...
Y esto es lo que dice la página del manual al respecto:
chattr changes the file attributes on a Linux file system.
The format of a symbolic mode is +-=[aAcCdDeijsStTu].
The operator ‘+’ causes the selected attributes to be added to the
existing attributes of the files; ‘-‘ causes them to be removed; and
‘=’ causes them to be the only attributes that the files have.
The letters ‘aAcCdDeijsStTu’ select the new attributes for the files:
append only (a), no atime updates (A), compressed (c), no copy on write
(C), no dump (d), synchronous directory updates (D), extent format (e),
immutable (i), data journalling (j), secure deletion (s), synchronous
updates (S), no tail-merging
Los siguientes son algunos ejemplos de preguntas y respuestas que deberían darle una buena idea de cómo linux chattr funciona y cómo puede ser aplicado para mantener la integridad de los archivos en su sistema.
Q1. ¿Cómo usar el comando chattr?
Suponga que desea hacer un archivo inmutable, es decir, que no pueda ser modificado ni eliminado. Entonces, todo lo que tiene que hacer es ejecutar el comando chattr con la opción +i y el nombre del archivo como entrada. Esto ejemplifica cómo el comando chattr sirve para proteger los archivos.
Por ejemplo:
chattr +i test.txt
La siguiente captura de pantalla muestra que ninguna otra operación fue exitosa en el archivo una vez que se convirtió en solo lectura usando chattr + i.
Nota: Como ya habrás observado, necesitas tener privilegios de root para usar el comando chattr.
Q2. ¿Cómo eliminar la restricción de solo lectura impuesta por chattr?
Esto es simple: todo lo que tiene que hacer es usar la opción -i en lugar de +i. Por ejemplo, para eliminar la inmutabilidad que impide la edición de un archivo, puede usar chattr -i.
chattr -i prueba.txt
Entonces puede ver que el factor de solo lectura se eliminó con la opción -i.
Q3. ¿Cómo proporcionar permiso de solo agregar a un archivo?
A veces, es posible que no desee una restricción completa en un archivo. Lo que quiero decir es que es posible que desee proporcionar a los usuarios acceso de solo agregar a un archivo, de modo que se pueda agregar nueva información, pero la información existente no se puede eliminar ni editar. Esto también es posible usando chattr a través de la opción +a, también conocido como chattr +a.
chattr +a test.txt
Entonces puede ver que podríamos agregar al archivo ahora, pero no pudimos editar la información existente en el archivo ni eliminar el archivo. Para revertir este comportamiento, simplemente use la opción -a.
chattr -a test.txt
Q4. ¿Cómo aplicar una restricción usando chattr a todos los archivos en un directorio?
Esto se puede hacer usando la bandera -R, que le permite cambiar recursivamente los atributos de los directorios y sus contenidos. Por ejemplo, si desea que todos los archivos dentro del directorio test-dir sean de solo lectura, use el comando chattr r de la siguiente manera:
chattr -R +i ./test-dir/
La siguiente captura de pantalla muestra que la restricción de solo lectura se aplicó con éxito a todos los archivos dentro del directorio.
P5. ¿Cómo verificar los atributos de chattr aplicados en los archivos?
Hasta ahora, para verificar si un atributo chattr se aplicó con éxito, intentamos realizar operaciones como editar el archivo o eliminarlo. Pero hay un comando separado que le permite ver fácilmente si los atributos se aplicaron o no. El comando en cuestión es lsattr.
lsattr [FILENAME]
Por ejemplo, la siguiente captura de pantalla muestra el resultado de lsattr, lo que sugiere claramente que el atributo ‘i’ de chattr + i se aplicó a todos los archivos del directorio.
Solo para reconfirmar, aquí está el resultado después de usar la opción -i.
Como puede ver en la captura de pantalla anterior, el atributo de solo lectura se eliminó de todos los archivos.
Conclusión
Probablemente estará de acuerdo en que chattr es una herramienta de línea de comandos que debe conocer si es un administrador del sistema o administra usuarios en una máquina Linux en general. El uso efectivo del comando puede ahorrarle muchas molestias. Este artículo debería ser suficiente para comenzar con el comando. Una vez que haya practicado los ejemplos que hemos discutido aquí, diríjase a la herramienta página man para aprender más al respecto.