Junto con los permisos habituales de lectura, escritura y ejecución de archivos , los archivos de Linux tienen otro conjunto de atributos que controlan otras características del archivo. Aquí se explica cómo verlos y cambiarlos.
En Linux, quién puede acceder a un archivo y qué puede hacer con él está controlado por un conjunto de permisos centrado en el usuario . Ya sea que pueda leer el contenido de un archivo , escribir nuevos datos en el archivo o ejecutar un archivo si es un script o un programa, todo se rige por ese conjunto de permisos. Los permisos se aplican al archivo, pero definen las restricciones y capacidades para diferentes categorías de usuarios.
Hay permisos para el propietario del archivo, para el grupo del archivo y para otros , es decir, usuarios que no están en las dos primeras categorías. Puede usar el ls
comando con la -l
opción (lista larga) para ver los permisos en un archivo o directorio.
Para cambiar los permisos, usa el chmod
comando . Al menos, puede hacerlo si tiene permisos de escritura para el archivo o si es el usuario root.
Podemos ver que los permisos de archivo están centrados en el usuario porque otorgan o eliminan permisos a nivel de usuario. Por el contrario, los atributos de un archivo están centrados en el sistema de archivos. Al igual que los permisos, se establecen en el archivo o directorio. Pero una vez configurados, son los mismos para todos los usuarios.
Los atributos son una colección separada de configuraciones de permisos. Los atributos controlan características como la inmutabilidad y otros comportamientos a nivel del sistema de archivos. Para ver los atributos de un archivo o directorio usamos el lsattr
comando. Para establecer los atributos usamos el chattr
comando.
Los permisos y atributos se almacenan dentro de los inodos . Un inodo es una estructura de sistema de archivos que contiene información sobre los objetos del sistema de archivos, como archivos y directorios . La ubicación de un archivo en el disco duro, su fecha de creación, sus permisos y sus atributos se almacenan dentro de su inodo.
Debido a que diferentes sistemas de archivos tienen diferentes capacidades y estructuras subyacentes, los atributos pueden comportarse de manera diferente, o ser ignorados por completo, por algunos sistemas de archivos. En este artículo, estamos usando ext4
cuál es el sistema de archivos predeterminado para muchas distribuciones de Linux.
Los comandos chattr
y lsattr
ya estarán presentes en su computadora, por lo que no es necesario instalar nada.
Para verificar los atributos de los archivos en el directorio actual, use lsattr
:
lsattr
Las líneas discontinuas son marcadores de posición para atributos que no están establecidos. El único atributo que se establece es el e
atributo (extensiones). Esto muestra que los inodos del sistema de archivos están usando, o usarán si es necesario, extensiones para apuntar a todas las partes del archivo en el disco duro.
Si el archivo se mantiene en una secuencia contigua de bloques de disco duro, su inodo solo tiene que registrar el primer y el último bloque utilizados para almacenar el archivo. Si el archivo está fragmentado , el inodo debe registrar el número del primer y último bloque de cada parte del archivo. Estos pares de números de bloque de disco duro se denominan extensiones.
Esta es la lista de los atributos más utilizados.
atime
actualizaciones . El atime
es un valor en un inodo que registra la última vez que se accedió a un archivo.dump
se usa para escribir copias de sistemas de archivos completos en medios de copia de seguridad. Este atributo hace dump
ignorar el archivo. Se excluye de la copia de seguridad.e
atributo indica que el sistema de archivos está utilizando extensiones para asignar la ubicación del archivo en el disco duro. No puede cambiar esto con chattr
. Es una función del funcionamiento del sistema de archivos.ext4
sistema de archivos.S
conjunto de atributos se escriben en el archivo de forma síncrona.u
atributo establecido provoca que se haga una copia del archivo. Esto puede ser beneficioso para la recuperación de archivos si el archivo se eliminó por error.El chattr
comando nos permite cambiar los atributos de un archivo o directorio. Podemos usar los operadores +
(establecer) y -
(desestablecer) para aplicar o eliminar un atributo, similar al chmod
comando y los permisos.
El chattr
comando también tiene un =
operador (solo conjunto). Esto establece los atributos de un archivo o directorio solo en los atributos que se especifican en el comando. Es decir, todos los atributos que no aparecen en la línea de comandos se anulan .
Establezcamos el atributo de solo agregar en un archivo de texto y veamos cómo afecta lo que podemos hacer con el archivo.
sudo chattr +un archivo de texto.txt
Podemos verificar que el bit de solo agregar se haya establecido usando lsattr
:
lsattr archivo-texto.txt
La letra “ a
” indica que se ha establecido el atributo. Intentemos sobrescribir el archivo. Redirigir la salida a un archivo con un solo corchete angular “ >
” reemplaza todo el contenido del archivo con la salida redirigida.
Hemos precargado el archivo de texto con algo de texto de marcador de posición de lorem ipsum .
archivo-de-texto-cat.txt
Redirigiremos la salida desde ls
el archivo:
ls -l > archivo-de-texto.txt
sudo ls -l > archivo-de-texto.txt
La operación no está permitida, incluso si usamos el sudo
comando .
Si usamos dos corchetes angulares “ >>
” para redirigir la salida, se agrega a los datos existentes en el archivo. Eso debería ser aceptable para nuestro archivo de texto de solo agregar.
sudo ls -l >> archivo-de-texto.txt
Volvemos al símbolo del sistema sin ningún mensaje de error. Echemos un vistazo dentro del archivo para ver qué ha sucedido.
archivo-de-texto-cat.txt
La salida redirigida de ls
se ha agregado al final del archivo.
Aunque podemos agregar datos al archivo, ese es el único cambio que podemos hacerle. No podemos eliminarlo y tampoco rootear.
rm archivo de texto.txt
sudo rm archivo de texto.txt
Si desea proteger un archivo al que nunca se le agregarán nuevos datos, puede establecer el atributo inmutable. Esto evita todos los cambios en el archivo, incluida la adición de datos.
sudo chattr +i segundo-archivo.txt
lsattr segundo archivo.txt
Podemos ver el “ i
” que indica que se ha establecido el atributo inmutable. Habiendo hecho que nuestro archivo sea inmutable, incluso el usuario raíz no puede cambiarle el nombre ( mv
), eliminarlo ( rm
) o agregarle datos.
sudo mv segundo archivo.txt nuevo nombre.txt
sudo rm segundo archivo.txt
sudo ls -l >> segundo-archivo.txt
Como señalamos, algunos sistemas operativos no admiten todos los atributos. ext
La familia de sistemas de archivos no respeta el atributo de eliminación segura , incluido ext4
. No confíe en esto para la eliminación segura de archivos.
Es fácil ver que esto no funciona en ext4
. Estableceremos el s
atributo (eliminación segura) en un archivo de texto.
sudo chattr +s tercer archivo.txt
Lo que vamos a hacer es averiguar el inodo que contiene los metadatos de este archivo. El inodo contiene el primer bloque de disco duro ocupado por el archivo. El archivo contiene algo de texto de marcador de posición de lorem ipsum .
Leeremos ese bloque directamente desde el disco duro para verificar que estamos leyendo la ubicación correcta del disco duro. Eliminaremos el archivo y luego leeremos el mismo bloque de inmersión duro una vez más. Si se respeta el atributo de eliminación segura, deberíamos leer los bytes puestos a cero.
Podemos encontrar el inodo del archivo usando el hdparm
comando con la --fibmap
opción (file block map).
sudo hdparm --fibmap tercer archivo.txt
El primer bloque del disco duro es 18100656. Usaremos el dd
comando para leerlo.
Las opciones son:
sudo dd if=/dev/sda bs=512 skip=18100656 cuenta=1
Como era de esperar, vemos el texto de marcador de posición de lorem ipsum . Estamos leyendo el bloque correcto en el disco duro.
Ahora borraremos el archivo.
rm tercer archivo.txt
Si leemos ese mismo bloque de disco duro, todavía podemos ver los datos.
sudo dd if=/dev/sda bs=512 skip=18100656 cuenta=1
Una vez más, no dependa de esto para la eliminación segura en ext4
. Hay mejores métodos disponibles para eliminar archivos para que no puedan recuperarse.
Establecer los atributos de los archivos puede hacerlos inmunes a desastres accidentales. Si no puede eliminar o sobrescribir un archivo, es bastante seguro.
Puede pensar que le gustaría aplicarlos a los archivos del sistema y hacer que su instalación de Linux sea más segura . Pero los archivos del sistema deben reemplazarse periódicamente a medida que se emiten o se aplican actualizaciones. Por ese motivo, es más seguro usar estos atributos solo en archivos de su propia creación.
El mundo del gaming ha experimentado un crecimiento exponencial en los últimos años. La…
Stokkete/Shutterstock.com ¿Sigue utilizando una unidad flash USB obsoleta para almacenar sus archivos? ¿Por qué no…
LG Los fabricantes siempre intentan mejorar el rendimiento de imagen de los monitores. Como resultado,…
Patty Chan/Shutterstock.com Si cree en lo que ve en las redes sociales, puede pensar en…
Seksan.TH/Shutterstock.com Los servicios de suscripción como Netflix, Game Pass y Spotify nos permiten consumir tantas…
fatmawati achmad zaenuri/Shutterstock El acceso a Internet, oa cualquier otra red, se rige por la…