Hay ciertos atributos de control que se pueden configurar en un archivo o directorio para permitir que se agreguen datos, para evitar que se cambien o eliminen, etc. Por ejemplo, puede habilitar atributos en un archivo o directorio crítico del sistema para que ningún usuario, incluido el root, puede eliminarlo o cambiarlo, no permitir que una utilidad de copia de seguridad, como el comando de volcado, haga una copia de seguridad de un archivo o directorio específico, etc. Estos atributos solo se pueden configurar en archivos y directorios ubicados en un sistema de archivos ext2, ext3 o ext4
Hay dos comandos lsattr y charlar que se utilizan para la gestión de atributos. La siguiente es la lista de atributos comúnmente utilizados
Atributos |
Descripción |
un (añadir) |
La operación de agregar está permitida en el archivo |
A |
Este atributo no permitirá actualizar el tiempo de acceso de un archivo |
c (comprimido) |
Cuando este atributo está habilitado, el archivo se comprime en el disco automáticamente |
d (vertedero) |
No se puede hacer una copia de seguridad del archivo con el comando de volcado. |
D |
Cuando el atributo D se establece en el directorio, los cambios se almacenan sincrónicamente en el disco |
e (formato de extensión) |
Muestra que el archivo está usando extensiones para mapear los bloques en el disco |
yo (inmutable) |
Cuando este atributo está habilitado en el archivo, no se puede modificar, renombrar ni eliminar el archivo. |
j (diario) |
Cuando se establece este atributo, los datos del archivo se almacenan primero en el diario y luego se escriben en el archivo. |
S (sincrónico) |
Cuando se establece este atributo, los cambios o modificaciones se almacenan sincrónicamente en el disco. |
Diferente Opciones que se puede usar en el comando chattr:
- -R cambiar los atributos del directorio y sus subdirectorios recursivamente
- -V Salida detallada del comando chattr junto con la versión.
- -F Suprime la mayoría de los mensajes de error.
Operadores que se utilizan en el comando chattr para establecer y desactivar atributos
- El signo ‘+’ se usa para establecer atributos en los archivos y directorios,
- El signo ‘-‘ se usa para eliminar o desactivar el atributo
- El signo ‘=’ hace que sean los únicos atributos que tienen los archivos.
Sintaxis básica de charlar y lsattr comando:
# chattr
# lsattr
Ejemplo:1 Hacer un archivo inmutable usando el atributo ‘i’
[[email protected] ~]# chattr +i dummy_data [[email protected] ~]# lsattr dummy_data ----i----------- dummy_data
Ahora intente eliminar y editar el archivo
[[email protected] ~]# rm -f dummy_data rm: cannot remove ‘dummy_data’: Operation not permitted [[email protected] ~]# echo "test" >> dummy_data -bash: dummy_data: Permission denied
Ejemplo:2 Eliminar el atributo inmutable
[[email protected] ~]# chattr -i dummy_data [[email protected] ~]# lsattr dummy_data ---------------- dummy_data
Ejemplo: 3 Para permitir solo operaciones de adición en el archivo
[[email protected] ~]# chattr +a dummy_data [[email protected] ~]# lsattr dummy_data -----a---------- dummy_data
Ahora intente agregar el contenido del archivo fstab en el archivo dummy_data
[[email protected] ~]# cat /etc/fstab >> dummy_data [[email protected] ~]#
Ejemplo:4 Secure Directory y sus subdirectorios usando la opción -R y el atributo ‘+i’.
Vamos a crear un directorio sysadmin y sus subdirectorios
[[email protected] ~]# mkdir sysadmin [[email protected] ~]# mkdir sysadmin/admim_{1,2,3,4,5} [[email protected] ~]# ls -l sysadmin/ total 0 drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_1 drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_2 drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_3 drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_4 drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_5
Establecer atributo inmutable recursivamente en el directorio sysadmin
[[email protected] ~]# chattr -R +i sysadmin [[email protected] ~]# lsattr -R sysadmin/ ----i----------- sysadmin/admim_1 sysadmin/admim_1: ----i----------- sysadmin/admim_2 sysadmin/admim_2: ----i----------- sysadmin/admim_3 sysadmin/admim_3: ----i----------- sysadmin/admim_4 sysadmin/admim_4: ----i----------- sysadmin/admim_5 sysadmin/admim_5: [[email protected] ~]#
Ahora intente eliminar directorios usando el comando rm
[[email protected] ~]# rm -rf sysadmin rm: cannot remove ‘sysadmin/admim_1’: Permission denied rm: cannot remove ‘sysadmin/admim_2’: Permission denied rm: cannot remove ‘sysadmin/admim_3’: Permission denied rm: cannot remove ‘sysadmin/admim_4’: Permission denied rm: cannot remove ‘sysadmin/admim_5’: Permission denied [[email protected] ~]#
Para desarmar los atributos recursivamente use el siguiente comando
[[email protected] ~]# chattr -R -i sysadmin