伪造子进程的日期/时间

时间:2019-06-28 08:54:49

标签: 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

如何实现with_date命令?

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

1 个答案:

答案 0 :(得分:4)

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

  

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

     

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

     

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,混合模式)