5 comandos ‘chattr’ para hacer que los archivos importantes sean INMUTABLES (inmutables) en Linux

5 comandos ‘chattr’ para hacer que los archivos importantes sean INMUTABLES (inmutables) en Linux

chattr (Cambiar atributo) es una utilidad de línea de comandos de Linux que se utiliza para establecer/desarmar ciertos atributos de un archivo en el sistema Linux para asegurar la eliminación o modificación accidental de archivos y carpetas importantes, aunque ha iniciado sesión como usuario root.

En los sistemas de archivos nativos de Linux, es decir, ext2, ext3, ext4, btrfs, etc., admite todas las banderas, aunque todas las banderas no son compatibles con todos los FS no nativos . No se puede eliminar o modificar un archivo/carpeta una vez que los atributos están configurados con el comando chattr, aunque uno tenga permisos completos sobre él.

 ejemplos de comandos chattr  ejemplos de comandos de chattr 5 ejemplos de comandos de chattr

Esto es muy útil para establecer atributos en archivos de sistema como passwd y archivos de sombra en los que se encuentra la información del usuario.

Sintaxis de chattr # chattr [operador] [banderas] [nombre de archivo] Atributos y banderas

A continuación se muestra la lista de atributos comunes y las banderas asociadas que se pueden configurar/desarmar usando el comando chattr.

  1. Si se accede a un archivo con ‘ Un conjunto de atributos. ‘, su registro de tiempo no se actualiza.
  2. Si un archivo se modifica con el conjunto de atributos’ S. ‘, los cambios se actualizan sincrónicamente en el disco .
  3. Un archivo se configura con el atributo ‘ a. , solo se puede abrir en el modo anexar para escritura.
  4. Un archivo se configura con ‘ i. ‘atributo, no se puede modificar (inmutable). Significa que no se cambia el nombre, no se crea un enlace simbólico, no se ejecuta, no se puede escribir, solo el superusuario puede desarmar el atributo.
  5. Se establece un archivo con el atributo ‘ j. , todos sus información actualizada en el diario ext3 antes de actualizarse en el archivo en sí.
  6. Un archivo se configura con el atributo ‘ t. , sin fusión final.
  7. Un archivo con el atributo “ d. , no será más candidato para la copia de seguridad cuando se ejecute el proceso de volcado.
  8. Cuando un archivo tiene “ u. se elimina el atributo, se guardan sus datos. Esto permite al usuario solicitar su eliminación.

Operador

  1. + : Agrega el atributo al atributo existente de los archivos.
  2. : Elimina el atributo del atributo existente de los archivos.
  3. = : Conserva los atributos existentes que tienen los archivos.

Aquí, vamos a demostrar algunos de los ejemplos del comando chattr para establecer/desarmar atributos en un archivo y carpetas.

1. Cómo agregar atributos en archivos para protegerlos de la eliminación

freestar.config.enabled_slots.push

Para fines de demostración, hemos utilizado la carpeta demo y archivo important_file.conf respectivamente. Antes de configurar los atributos, asegúrese de verificar que los archivos existentes tengan algún atributo establecido mediante el comando “ls-l”. ¿Viste los resultados? Actualmente no hay ningún atributo establecido.

[[email protected] tecmint] # ls-l total 0 drwxr-xr-x. 2 root root 6 31 de agosto 18:02 demo-rwxrwxrwx. 1 root root 0 31 de agosto 17:42 important_file.conf

Para establecer el atributo, usamos el signo +. y para desarmar usamos el signo con el comando chattr. Por lo tanto, establezcamos un bit inmutable en los archivos con indicadores + i para evitar que alguien elimine un archivo, incluso un usuario root no tiene permiso para eliminarlo.

[[email protected] tecmint] # chattr + i demo/[[email protected] tecmint] # chattr + i important_file.conf

Nota. El bit inmutable + i solo puede ser configurado por un usuario superusuario (es decir, root) o un usuario con privilegios sudo puede configurarlo.

Después de configurar el bit inmutable, verifiquemos el atributo con el comando ‘ lsattr. ‘.

[[email protected] tecmint] # lsattr—-i———–./demo—-i———–./important_file.conf

Ahora, intenté eliminar forzosamente, renombrar o cambiar los permisos, pero no se permite dice “ Operación no permitida. .

[[email protected] tecmint] # rm-rf demo/rm: no se puede eliminar âdemo/â: operación no permitida [[email protected] tecmint] # mv demo/demo_alter mv: no se puede mover âdemo/â a âdemo_alterâ: Operación no permitida [[email protected] tecmint] # chmod 755 important_file.conf chmod: cambio de permisos de âimportant_file.confâ: Operación no permitida

2. Cómo desarmar un atributo en archivos

En el ejemplo anterior, hemos visto cómo establecer un atributo para proteger y evitar que los archivos se eliminen accidentalmente, aquí en este ejemplo, veremos cómo restablecer (desarmar atributo ) permisos y permite hacer que un archivo se pueda cambiar o alterar usando la bandera -i.

[[email protected] tecmint] # chattr-i demo/important_file.conf

Después de restablecer los permisos, Verifique el estado inmutable de los archivos usando el comando ‘ lsattr. .

[[email protected] tecmint] # lsattr—————-./demo—————-./important_file.conf

En los resultados anteriores, ve que el indicador ‘-i. se eliminó, eso significa que puede eliminar de forma segura todos los archivos y carpetas que residen en la carpeta tecmint.

[[email protected] tecmint] # rm-rf * [[email protected] tecmint] # ls-l total 0

3. Cómo proteger los archivos/etc/passwd y/etc/shadow

Establecer un atributo inmutable en los archivos /etc/passwd o /etc/shadow , hace protegerlos de una eliminación accidental o manipulación y también deshabilitará la creación de la cuenta de usuario.

[[email protected] tecmint] # chattr + i/etc/passwd [[email protected] tecmint] # chattr + i/etc/shadow

Ahora intente crear un nuevo usuario del sistema, obtendrá un mensaje de error que dice ‘no se puede abrir/etc/passwd. .

[[email protected] tecmint] # useradd tecmint useradd : no se puede abrir/etc/passwd

De esta manera, puede establecer permisos inmutables en sus archivos importantes o archivos de configuración del sistema para evitar que se eliminen.

4. Agregar datos sin modificar los datos existentes en un archivo

Supongamos que solo desea permitir que todos agreguen datos en un archivo sin cambiar o modificar los datos ya ingresados, puede usar la opción ‘ a. ‘atributo de la siguiente manera.

[[email protected] tecmint] # chattr + a example.txt [[email protected] tecmint] # lsattr example.txt—–a———-example.txt

Después de configurar el modo de agregar, el archivo se puede abrir para escribir datos solo en el modo de agregar. Puede deshabilitar el atributo adjuntar de la siguiente manera.

[[email protected] tecmint] # chattr-a example.txt

Ahora intente reemplazar el contenido ya existente en un archivo example.txt. obtendrá un error que diga ‘ Operación no permitida. .

[[email protected] tecmint] # echo “reemplazar contener en el archivo”.> example.txt-bash: example.txt: Operación no permitida

Ahora intente agregar contenido nuevo en un archivo example.txt. existente y verifíquelo.

[[email protected] tecmint] # echo “reemplazar contener en archivo”.>> example.txt [[email protected] tecmint] # cat example.txt Aquí está el ejemplo para probar el atributo ‘a’ significa agregar solamente. reemplazar contener en archivo.

5. Cómo proteger directorios

Para proteger todo el directorio y sus archivos, usamos el interruptor ‘-R. (recursivamente) con el indicador ‘ + i. junto con la ruta completa de la carpeta.

[[email protected] tecmint] # chattr-R + i myfolder

Después de configurar el atributo recursivamente, intente eliminar la carpeta y sus archivos.

[[email protected ] tecmint] # rm-rf myfolder/rm: no se puede eliminar ‘myfolder/’: Operación no permitida

Para desarmar el permiso, usamos el mismo interruptor ‘-R’ (recursivamente) con el indicador ‘-i’ junto con la ruta completa de la carpeta.

[[email protected] tecmint] # chattr-R-i myfolder

¡Eso es! Para saber más sobre los atributos, banderas y opciones del comando chattr, use las páginas de manual.