Algunas veces, no pienso con claridad y accidentalmente "SHIFT+DELETE" mis datos. Peor aún, ni siquiera hago una copia de seguridad de los datos antes de eliminarlos. Si eres como yo, aquí hay una buena noticia para ti. Conozco una útil utilidad de línea de comandos llamada "chattr" que se utiliza para evitar que los archivos y carpetas se eliminen o modifiquen accidentalmente en Linux.
Chattr, abreviatura de Ch ángel Atributo ibute, aplica/elimina ciertos atributos a un archivo o carpeta en su sistema Linux. Para que nadie pueda eliminar o modificar los archivos y carpetas, ya sea accidental o intencionalmente, incluso como usuario root . Suena útil, ¿no? ¡De hecho!
Evite la eliminación o modificación accidental de archivos y carpetas en Linux usando Chattr
De forma predeterminada, Chattr viene preinstalado en muchos sistemas operativos Linux. Así que no nos preocupemos por la instalación.
La sintaxis predeterminada del comando chattr es:
chattr [operator] [switch] [filename]
chattr tiene los siguientes operadores:
- El operador '
+
' hace que los atributos seleccionados se agreguen a los atributos existentes de los archivos. - El operador '
-
' hace que se eliminen. - El operador '
=
' hace que sean los únicos atributos que tienen los archivos.
Chattr tiene diferentes atributos, a saber:aAcCdDeijsStTu . Cada letra aplica un atributo particular a un archivo como se indica a continuación.
- un - agregar solo,
- A - sin actualizaciones puntuales,
- c - comprimido,
- C - sin copia al escribir,
- d - sin volcado,
- D - actualizaciones de directorio síncronas,
- e - formato de extensión,
- yo - inmutable,
- j - diario de datos,
- P - jerarquía del proyecto,
- s - eliminación segura,
- S - actualizaciones síncronas,
- t - sin fusión de colas,
- T - parte superior de la jerarquía de directorios,
- u - imborrable.
En este tutorial, vamos a discutir el uso de dos atributos, a saber, a , yo que se utilizan para evitar la eliminación de archivos y carpetas.
Evitar archivos borrados accidentalmente en Linux
Déjame crear un archivo llamado file.txt
en mi directorio actual.
$ touch file.txt
O,
$ > file.txt
Ahora, voy a aplicar "i
" atributo que hace que el archivo sea inmutable. Significa que no puede eliminar, modificar el archivo, incluso si es el propietario del archivo y el usuario root.
$ sudo chattr +i file.txt
Puede verificar los atributos del archivo usando el comando:
$ lsattr file.txt
Salida de muestra:
----i---------e---- file.txt
Ahora, intente eliminar el archivo como usuario normal o con privilegios sudo.
$ rm file.txt
Salida de muestra:
rm: cannot remove 'file.txt': Operation not permitted
Déjame probar con el comando sudo:
$ sudo rm file.txt
Salida de muestra:
rm: cannot remove 'file.txt': Operation not permitted
Intentemos agregar algunos contenidos en el archivo de texto.
$ echo 'Hello World!' >> file.txt
Salida de muestra:
bash: file.txt: Operation not permitted
Incluso si intenta eliminar el archivo de su administrador de archivos en modo GUI, no puede eliminarlo.
Como notó en los resultados anteriores, no podemos eliminar o modificar el archivo incluso como usuario root.
Para revocar atributos, simplemente use "-i
" interruptor como se muestra a continuación.
$ sudo chattr -i file.txt
Ahora, el atributo inmutable ha sido eliminado. Ahora puede modificar o eliminar el archivo como desee.
$ echo 'Hello World!' >> file.txt
$ cat file.txt Hello World!
$ rm file.txt
De manera similar, puede restringir los directorios para que no se eliminen o modifiquen accidentalmente, como se describe en la siguiente sección.
Evite la eliminación y modificación accidental de carpetas en Linux
Crea un directorio llamado dir1
y un archivo llamado file.txt
dentro de este directorio.
$ mkdir dir1 && touch dir1/file.txt
Ahora, haga que este directorio y su contenido (archivo.txt) sean inmutables usando el comando:
$ sudo chattr -R +i dir1
donde,
-R
- hará que dir1 y su contenido sean inmutables recursivamente.+i
- hace que el directorio sea inmutable.
Ahora, intente eliminar el directorio como usuario normal o usando sudo user.
$ rm -fr dir1
$ sudo rm -fr dir1
Obtendrá el siguiente resultado:
rm: cannot remove 'dir1/file.txt': Operation not permitted
Intente agregar algunos contenidos en el archivo usando "echo
" comando. ¿Lo lograste? ¡Por supuesto que no pudiste!
Para revocar los atributos, ejecute:
$ sudo chattr -R -i dir1
Ahora, puede eliminar o modificar el contenido de este directorio como de costumbre.
Evite la eliminación accidental de archivos y carpetas, pero permita la operación de anexar en Linux
Ahora sabemos cómo evitar que los archivos y carpetas se eliminen y modifiquen accidentalmente. A continuación, vamos a evitar que se eliminen archivos y carpetas, pero permitiremos que el archivo se escriba solo en modo de adición. Eso significa que no puede editar, modificar los datos existentes en el archivo, cambiar el nombre del archivo y eliminar el archivo. Solo puede abrir el archivo para escribir en modo de adición.
Para configurar la atribución del modo de adición a un archivo/directorio, hacemos lo siguiente:
Para archivos:
$ sudo chattr +a file.txt
Para directorios:
$ sudo chattr -R +a dir1
Un archivo/carpeta con el conjunto de atributos 'a' solo se puede abrir en modo de adición para escritura.
Agregue algunos contenidos a los archivos para verificar si funcionan o no.
$ echo 'Hello World!' >> file.txt
$ echo 'Hello World!' >> dir1/file.txt
Verifique el contenido del archivo usando el comando cat:
$ cat file.txt
$ cat dir1/file.txt
Salida de muestra:
Hello World!
Como puede ver, podemos agregar los contenidos. Significa que podemos modificar los archivos y carpetas.
Intentemos eliminar el archivo o la carpeta ahora.
$ rm file.txt
Salida:
rm: cannot remove 'file.txt': Operation not permitted
Intentemos eliminar la carpeta:
$ rm -fr dir1/
O prueba con sudo:
$ sudo rm -fr dir1/
Salida de muestra:
rm: cannot remove 'dir1/file.txt': Operation not permitted
Para eliminar los atributos, ejecute los siguientes comandos:
Para archivos:
$ sudo chattr -R -a file.txt
Para directorios:
$ sudo chattr -R -a dir1/
Ahora, puede eliminar o modificar los archivos y carpetas como de costumbre.
Para obtener más detalles, consulte las páginas man.
$ man chattr
Conclusión
La copia de seguridad y la protección de datos es uno de los trabajos principales de un administrador de sistemas de Linux. Hay numerosos software de protección de datos gratuitos y comerciales disponibles en el mercado. Afortunadamente, contamos con esta herramienta integrada que nos ayuda a proteger los datos de la eliminación o modificación accidental. Chattr se puede utilizar como herramienta adicional para proteger los archivos y datos importantes del sistema en su sistema Linux.
Lectura sugerida:
- Una manera fácil de proteger archivos de eliminación accidental en Linux
- Cómo evitar un apagado o reinicio accidental en Linux