Shell小技巧(八十五)Linux审计所有用户执行命令

history可以记录用户执行过的命令。

但是只有登陆到该用户环境下可以查询。

作为管理者,想审计这些执行记录,就比较麻烦了。

通过利用环境变量PROMPT_COMMAND,可以做到将所有用户执行命令的记录,集中记录在一个日志文件。

1.先创建一个日志文件

touch /var/local/mon.log

chmod 002 /var/local/mon.log

注意权限修改,权限时任意用户可以写,但是所有用户不能读执行,属主和同组用户不可写。

其目的就是达成可以记录但是不让看的目标。当然root用户特殊。

2.修改profile配置

vim /etc/profile  

最下方添加下面内容:

export HISTORY_FILE=/var/local/mon.log

export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ## `hostname` ## $(who am i |awk "{print \$1}") ## $(who am i |awk "{print \$2}") ## $realsourceip ## $(history 1 | { read x cmd; echo " $cmd"; })"; } >>$HISTORY_FILE'

realsourceip=`who am i | awk -F"[()]" '{print $2}'`

source /etc/profile   生效

PROMPT_COMMAND略作说明:

date "+%Y-%m-%d %T                输出生时间

hostname                                      输出主机名

$(who am i |awk "{print \$1}")    输出用户名

$(who am i |awk "{print \$2}")      输出登陆方式

`who am i | awk -F"[()]" '{print $2}'`  即变量realsourceip,输出登陆ip

$(history 1 | { read x cmd; echo " $cmd"; })  输出用户执行的命令

所有数据以“##”作为分隔符

测试效果如下:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值