伪造子进程的日期/时间

gig*_*tes 7 unix posix

在Unix系统上,是否可以伪造子进程的已知日期和时间?

即,想象一下:

$ date 
Fri Jun 28 10:50:35 CEST 2019

$ with_date 10/05/2019 date
Fri May 10 10:50:36 CEST 2019
Run Code Online (Sandbox Code Playgroud)

如何执行with_date命令?

典型的用例是测试与日期/时间相关的软件,模拟各种情况。

And*_* H. 5

有库libfaketime。它使用库预加载机制来拦截要运行的程序的系统调用。一个用例(来自手册)是:

user @ host>日期
2016年11月23 日星期二12:01:05

user @ host> LD_PRELOAD = / usr / local / lib / libfaketime.so.1 FAKETIME =“-15d”日期
2016年11月8 日星期一12:08

user @ host> LD_PRELOAD = / usr / local / lib / libfaketime.so.1 FAKETIME =“-15d” FAKETIME_DONT_FAKE_MONOTONIC = 1 java -version
Java版本“ 1.8.0_111”
Java(TM)SE运行时环境(内部版本1.8.0_111- b14)Java HotSpot(TM)64位服务器VM(内部版本25.111-b14,混合模式)