伪造子进程的 date/time
Faking date/time of child process
在 Unix 系统上,有没有办法伪造子进程的感知日期和时间?
即想象一下:
$ date
Fri Jun 28 10:50:35 CEST 2019
$ with_date 10/05/2019 date
Fri May 10 10:50:36 CEST 2019
如何实现with_date
命令?
典型的用例是测试 date/time-related 软件,模拟各种条件。
有图书馆libfaketime。它使用库预加载机制来拦截 to-be-run 程序的系统调用。 A use-case(来自手册)是:
user@host> date
Tue Nov 23 12:01:05 CEST 2016
user@host> LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="-15d" date
Mon Nov 8 12:01:12 CEST 2016
user@host> LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="-15d"
FAKETIME_DONT_FAKE_MONOTONIC=1
java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM)
64-Bit Server VM (build 25.111-b14, mixed mode)
在 Unix 系统上,有没有办法伪造子进程的感知日期和时间?
即想象一下:
$ date
Fri Jun 28 10:50:35 CEST 2019
$ with_date 10/05/2019 date
Fri May 10 10:50:36 CEST 2019
如何实现with_date
命令?
典型的用例是测试 date/time-related 软件,模拟各种条件。
有图书馆libfaketime。它使用库预加载机制来拦截 to-be-run 程序的系统调用。 A use-case(来自手册)是:
user@host> date
Tue Nov 23 12:01:05 CEST 2016user@host> LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="-15d" date
Mon Nov 8 12:01:12 CEST 2016user@host> LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="-15d" FAKETIME_DONT_FAKE_MONOTONIC=1 java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)