我确实创建了一个中央auditd服务器,我从本地服务器发送所有审计日志。
我想要报告来自特定节点的访问。
所以我创建了一个简单的报告脚本,其中一行类似于: ausearch -n XXXXX |奥雷波特-i
它的安排如下: 0 */4 * * * root /home/XXXX/report.sh
权限为:-rwxr-xr-x 1 root root 743 Feb 10 11:27 report.sh
当我从 shell 执行脚本时,一切看起来都正常,我收到了带有日志输出的邮件:
总结报告 ===================== 日志中的时间范围: **02/22/2017 23:24:09.603 - 02/24/2017 10:16:26.313** 选择报告时间:**02/22/2017 23:24:09 - 02/24/2017 10:16:26.313** 配置更改次数:0 帐户、组或角色的更改次数:0 登录次数:22 登录失败次数:2 认证数量:54 认证失败次数:0 用户数量:5 端子数量:4 主机名数量:4 可执行文件数量:14 命令数量:21 文件数量:101 AVC 数量:0 MAC 事件数量:0 失败的系统调用次数:20 异常事件数量:0 异常事件响应数量:0 加密事件数量:256 完整性事件数量:0 虚拟事件数量:0 钥匙数量:1 进程ID数量:25087 事件数量:96620
但问题是,当我通过 crontab 安排它时。然后我收到错误的日期和时间,没有任何事件......类似这样的事情:
总结报告 ===================== 日志中的时间范围: **01/01/1970 01:00:00.000 - 01/01/1970 01:00:00.000** 选择报告时间: **01/01/1970 01:00:00 - 01/01/1970 01:00:00.000** 配置更改次数:0 帐户、组或角色的更改次数:**0** 登录次数:**0** 登录失败次数:**0** 认证次数:**0** 认证失败次数:**0** 用户数量:**0** 终端数量:**0** 主机名数量:**0** 可执行文件数量:**0** 命令数量:**0** 文件数量:**0** AVC 数量:**0** MAC 事件数量:**0** 失败的系统调用数量:**0** 异常事件数量:**0** 异常事件响应数量:**0** 加密事件数量:**0** 完整性事件数量:**0**
我的Linux版本:Linux版本3.10.0-514.2.2.el7.x86_64([电子邮件受保护]) (gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP 12 月 6 日星期二 23:06:41 UTC 2016
知道为什么会这样吗?
答案1
cron 在受限环境下运行,您必须扩展它。将 PATH 变量设置为与当前环境相同的值。 crontab 示例:
PATH=/home/xxxxx/bin:/usr/local/bin:/usr/bin:/bin
SHELL=/bin/zsh
MAILTO=xxxxx
#
# minute 0-59
# hour 0-23
# dom 1-31
# mon 1-12 (or names)
# dow 0-7 (0 or 7 is Sun, or use names)
#
# mm hh dom mon dow command
* * * * * set > /tmp/cronenv
用于set > /tmp/myenv
比较您的环境和 crons 环境或跟踪使用情况ltrace -egetenv
。