Si alguna vez te has preguntado como los técnicos informáticos pueden saber la fecha en la que has modificado o accedido a un fichero, aquí te explicaré como lo hacen y como puedes modificarlo para ocultar tu rastro. Recuerda que debes borrar tu rastro como borrando los últimos comandos del history, etc .. pero solamente voy a explicar como cambiar el atime,mtime y ctime ;)
⬇️ Compra en Amazon el hardware que utilizo ⬇️
- 💻 Ordenador Portátil: Descúbrelo aquí
- 🖥️🖥️ Monitores: Mis 2 súper monitores
- ⌨️ Teclado: Mini teclado + Lector DNIe
- 🖱️ Ratón: Mi ratón programable
- 🎧 Auriculares: Súper Auriculares TOP!
- 🖨️ Impresora: Mi fantástica impresora
- 🗄️ NAS Backup: Mi NAS para Backups
- 🔌 HUB USB: Mi HUB para puertos USB
- 📱 Smartphone: Mi Smartphone
- 📲 Tablet: Mi tablet para viajes
- ⌚ Smartwatch: Mi Smartwatch favorito
- 📹 Cámara deportiva: Mi cámara para deportes
Cada vez que accedemos a un fichero, dicha fecha queda registrada. Cada vez que modificamos un fichero, dicha fecha queda registrada y almacenada, y cada vez que cambiamos los atributos de los ficheros, también quedan almacenados.
Si quieres eliminar tu rastro modificando dichas modificaciones de los ficheros, aquí te enseñaré a cambiarlos.
Cualquier duda, problema ó sugerencia, podéis dejar un comentario abajo del tutorial. ¡Allá vamos!
1.- ELEMENTOS UTILIZADOS EN ESTE TUTORIAL
- GNU/Linux Debian
2.- TIPOS DE TIMESTAMP
En GNU/Linux, podemos encontrarnos con 3 tipos de timestamp en los ficheros. El atime (access time) , el mtime (modification time) y el change time (ctime). A continuación hago una tabla resumen para saber ante que situación cada uno de los timestamps se actualiza:
TIMESTAMP | EL FICHERO SE ACTUALIZA CUANDO... |
atime | El "Access time" se actualiza cuando abrimos el fichero o cuando se usa para operaciones de "cat", "head", "grep" donde el fichero necesita ser abierto para leerse. |
ctime | El "Modify Time" se actualiza cuando actualizamos el contenido del fichero o cuando guardamos un fichero. |
mtime | El "Change Time" se actualiza cuando los atributos y metadatos se actualizan. (Permisos, usuarios, grupos, etc...) |
3.- VISUALIZANDO LOS TIMESTAMP
Para visualizar los 3 timestamp en los ficheros de GNU/Linux,haremos uso del comando "stat" y lo usaremos de la siguiente forma:
# stat fichero.txt
Fichero: «fichero.txt»
Tamaño: 9 Bloques: 8 Bloque E/S: 4096 fichero regular
Dispositivo: 801h/2049d Nodo-i: 142758 Enlaces: 1
Acceso: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Acceso: 2016-12-20 11:39:05.370138243 +0100
Modificación: 2016-12-20 11:39:08.502138136 +0100
Cambio: 2016-12-20 11:39:08.510138136 +0100
Creación: -
4.- CAMBIANDO LA FECHA DE ACCESO
Para cambiar la fecha de último acceso a un fichero, podemos utilizar el comando "touch" para cambiar dicha fecha a otra a nuestro gusto. A continuación se describen algunas de las formas que se pueden utilizar para realizar dicho cambio:
# touch -a --date="1999-09-09" fichero.txt
# touch -a --date="1999-09-09 15:30" fichero.txt
# touch -a --date="1999-09-09 15:30:30.534567284 +0500" fichero.txt
Vamos a usar, por ejemplo, la siguiente modificación: "touch -a --date="1999-09-09 15:30" fichero.txt" y luego con "stat" veremos el resultado:
# touch -a --date="1999-09-09 15:30" fichero.txt
Comprobamos el cambio:
# stat
Fichero: «fichero.txt»
Tamaño: 9 Bloques: 8 Bloque E/S: 4096 fichero regular
Dispositivo: 801h/2049d Nodo-i: 142758 Enlaces: 1
Acceso: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Acceso: 1999-09-09 15:30:00.000000000 +0200 ---- VEMOS QUE HA CAMBIADO EL ACCESS TIME
Modificación: 2016-12-20 11:39:08.502138136 +0100
Cambio: 2016-12-20 11:52:24.450110907 +0100
Creación: -
5.- CAMBIANDO LA FECHA DE MODIFICACIÓN
Para cambiar la fecha de última modificación de un fichero, podemos utilizar el comando "touch" para cambiar dicha fecha a otra a nuestro gusto. A continuación se describen algunas de las formas que se pueden utilizar para realizar dicho cambio:
# touch -m --date="2000-01-01" fichero.txt
# touch -m --date="2000-01-01 11:11" fichero.txt
# touch -m --date="2000-01-01 11:11:11.234567890 +0500" fichero.txt
Vamos a usar, por ejemplo, la siguiente modificación: "touch -m --date="2000-01-01 11:11:11.234567890 +0500" fichero.txt" y luego con "stat" veremos el resultado:
# touch -m --date="2000-01-01 11:11:11.234567890 +0500" fichero.txt
Comprobamos el cambio:
# stat
Fichero: «fichero.txt»
Tamaño: 9 Bloques: 8 Bloque E/S: 4096 fichero regular
Dispositivo: 801h/2049d Nodo-i: 142758 Enlaces: 1
Acceso: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Acceso: 1999-09-09 15:30:00.000000000 +0200
Modificación: 2000-01-01 07:11:11.234567890 +0100 ---- VEMOS QUE HA CAMBIADO EL MODIFY TIME
Cambio: 2016-12-20 11:58:44.946097890 +0100
Creación: -
6.- CAMBIANDO LA FECHA DE CAMBIO
Para cambiar la fecha de "cambio" no existe un método fácil como puede ser el cambio del atime y el mtime. El ctime cambia cuando alguno de los metadatos del fichero cambia, como por ejemplo el usuario y/o permisos del fichero. También existe otra forma de realizar dicho cambio. Podemos cambiar la fecha del equipo y posteriormente hacer un touch al fichero y restaurar la fecha original.
Pero una forma mas sencilla es la siguiente:
# ls -l fichero.txt
-rw-r--r-- 1 root root 9 ene 1 2000 fichero.txt
# chown root fichero.txt
# stat fichero.txt
Fichero: «fichero.txt»
Tamaño: 9 Bloques: 8 Bloque E/S: 4096 fichero regular
Dispositivo: 801h/2049d Nodo-i: 142758 Enlaces: 1
Acceso: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Acceso: 1999-09-09 15:30:00.000000000 +0200
Modificación: 2000-01-01 07:11:11.234567890 +0100
Cambio: 2016-12-20 12:11:40.582071355 +0100 --- COMO VEMOS EL CHANGE TIME HA CAMBIADO
Creación: -
ENJOY!