Linux — Изменить Метки Времени Файла (Access, Modify, Change)

Файлы в Linux имеют 3 типа временных меток: время доступа (англ. access time, сокр. atime), время модификации (англ. modification time, сокр. mtime) и время изменения (англ. change time, сокр. ctime).

Однажды может возникнуть необходимость подделать временные метки какого-либо файла.

atime (время доступа), как и mtime (время модификации) могут быть легко изменены с помощью команды touch, но для подделки метки ctime (времени изменения) стандартного решения не существует.

Тем не менее, в качестве обходного пути, можно установить системное время в то значение на которое вы хотите изменить ctime файла, затем использовать команду touch на этом файле и потом откатить системное время обратно.

Из приведенной ниже статьи вы узнаете, как сохраняя анонимность изменять временные метки файла.

Дельный Совет: Чтобы замести следы — очистите историю последних входов в систему. Читать далее →

Узнать Временные Метки Файла

Чтобы получить информацию о текущий временных метках файла воспользуетесь командой stat:

$ stat file.txt
  File: ‘file.txt’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 804h/2052d	Inode: 2501536     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/     admin)   Gid: ( 1000/     admin)

Access: 2015-02-19 11:43:08.503408793 +0200
Modify: 2015-02-19 11:43:08.503408793 +0200
Change: 2015-02-19 11:43:08.503408793 +0200

Разница Между «atime», «mtime» и «ctime»

Временная метка Когда она обновляется?
atime Время доступа к файлу обновляется когда вы открываете файл либо когда он используется для других операций, например таких как: grep, cat, head и т.д.
mtime Время модификации файла обновляется когда вы изменяете его содержимое либо сохраняете файл.
ctime Время изменения файла обновляется когда меняются его атрибуты, такие как владелец файла, права, либо он перемещается на другую файловую систему. Также это время обновляется и при изменения времени модификации файла.

Изменить Временя «Доступа» и «Модификации» Файла

Изменить atime к файлу (время доступа):

$ touch -a --date="1988-02-15" file.txt
$ touch -a --date="1988-02-15 01:00" file.txt
$ touch -a --date="1988-02-15 01:00:17.547775198 +0300" file.txt

Изменить mtime файла (время модификации):

$ touch -m --date="2020-01-20" file.txt
$ touch -m --date="2020-01-20 23:05" file.txt
$ touch -m --date="2020-01-20 23:05:43.443117094 +0400" file.txt

Подделать Время «Изменения» Файла

Как я уже говори ранее, не существует стандартного решения для подделки ctime (времени изменения файла).

Тем не менее, если вы готовы рискнуть, это можно сделать.

Для начала необходимо изменить системное время на то, на которое вы хотите поменять ctime.

Затем необходимо использовать команду touch на файле, а потом откатить системное время обратно.

Неожидаемые последствия: Изменение системного времени может привести к неожидаемым последствиям. Используйте приведенные ниже команды только на свой страх и риск.

Сохраните текущую дату и время в переменную NOW:

$ NOW=$(date)

Установите поддельное системное время (необходим root):

$ date --set "2030-08-15 21:30:11"

Используйте команду touch на файле для изменения всех временных меток на поддельные:

$ touch file.txt

Откатите время назад (необходим root):

$ date --set "$NOW"

Дельный Совет: Удаляйте историю команд в BASH эффективно! Читать далее →

Для увеличения скорости выполнения модификаций и как следствие уменьшения риска возможных последствий, вы можете выполнит приведенные выше команды следующим образом:

$ NOW=$(date) && date -s "2030-08-15 21:30:11" && touch file.txt && date -s "$NOW"

Заметаем Следы

Чтобы замести следы — очистите значение переменной, а также почистить логи и историю.

Очистите значение переменной NOW:

$ unset NOW

Из файла /var/log/messages удалите строки с информацией об изменении системного времени (необходим root):

Feb 24 06:32:46 centos7 systemd: Time has been changed
Aug 15 14:30:11 centos7 systemd: Time has been changed

Дельный Совет: Хотите сохранить анонимность? Узнайте как использовать ПРОКСИ из командной строки в Linux! Читать далее →

Очистите историю входов в Linux (необходим root):

$ echo > /var/log/wtmp
$ echo > /var/log/btmp
$ echo > /var/log/lastlog

Очистите историю текущей сессии:

$ history -r

2 Replies to “Linux — Изменить Метки Времени Файла (Access, Modify, Change)”

  1. Надо бы исправить заголовок/описание кода:
    Изменить [s]ctime[/s] mtime файла (время модификации):

    $ touch -m --date="2020-01-20" file.txt
    $ touch -m --date="2020-01-20 23:05" file.txt
    $ touch -m --date="2020-01-20 23:05:43.443117094 +0400" file.txt
    1. Поправил. Спасибо.

Добавить комментарий