GNU/Linux >> Tutoriales Linux >  >> Linux

Evite la eliminación o modificación accidental de archivos y carpetas en Linux

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

Linux
  1. Una manera fácil de ocultar archivos y directorios en Linux

  2. Cómo eliminar archivos y directorios en Linux desde la línea de comandos

  3. Cómo dividir y combinar archivos desde la línea de comandos en Linux

  4. Cómo extraer archivos .gz y .tar.gz en Linux

  5. Cómo cifrar y descifrar archivos/carpetas en Linux usando GnuPG

Una manera fácil de proteger los archivos de la eliminación accidental en Linux

Cómo abrir archivos y carpetas como administrador en Nautilus File Manager en Linux

Cómo ocultar carpetas y archivos en Linux usando un archivo de texto

Ahorre espacio comprimiendo archivos y carpetas en Linux

Cómo copiar archivos y directorios en la terminal de Linux

Comando tar de Linux para comprimir y extraer archivos