Linux实现日志审记

来源:本站原创 IT必备工具 超过198 views围观 0条评论

关键命令

PROMPT_COMMAND

read

 

1.创建用户审计文件存放目录和审计日志文件 ;

 

[root@localhost ~]# touch /var/log/Command_history.log

2.将日志文件所有者赋予一个最低权限的用户;

[root@localhost ~]# chown nobody.nobody /var/log/Command_history.log
 
-rw-r–r– 1 nobody nobody 0 12月 26 10:19 /var/log/Command_history.log

3.给该日志文件赋予所有人的写权限;

[root@localhost ~]# chmod 002 /var/log/Command_history.log

4.设置文件权限,使所有用户对该文件只有追加权限 ;

[root@localhost ~]# chattr +a /var/log/Command_history.log
ll /var/log/Command_history.log
——–w- 1 nobody nobody 0 12月 26 10:19 /var/log/Command_history.log

 

查看
[root@localhost ~]# lsattr /var/log/Command_history.log
—–a———- /var/log/Command_history.log

5.编辑/etc/profile文件,添加如下脚本命令;
脚本
export HISTORY_FILE=/var/log/Command_history.log
export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### USER:$USER IP:$SSH_CLIENT PS:$SSH_TTY ppid=$PPID pwd=$PWD  #### $(history 1 | { read x y; echo "$y"; })";} >>$HISTORY_FILE’

 

6.使配置生效

source  /etc/profile

说明
PROMPT_COMMAND 实现审计功能 使用PROMPT_COMMAND可以在用户输入一条命令,就直接记录,

管道前面,history 1表示取最后一条命令。管道后面'{ }’内是一整体,相当于一个函数,函数里面可以有多条命令,用分号分割,而且最后一条命令也必须加分号。
第一条命令和'{‘之间必须要有空格。
history 1 取后后一条,将结果赋值给 read x y
x =第一个值,因为是序号所以不需要
打印 $cmd的值

 

 

效果

[root@localhost ~]# tail -f /var/log/Command_history.log
2018-12-26 10:27:48 ##### USER:root IP:192.168.130.135 64216 22 PS:/dev/pts/1 ppid=28919 pwd=/root  #### sudo
2018-12-26 10:27:49 ##### USER:root IP:192.168.130.135 64216 22 PS:/dev/pts/1 ppid=28919 pwd=/root  #### sudo
2018-12-26 10:27:50 ##### USER:root IP:192.168.130.135 64216 22 PS:/dev/pts/1 ppid=28919 pwd=/root  #### sudo
2018-12-26 10:28:14 ##### USER:root IP:192.168.130.135 52547 22 PS:/dev/pts/2 ppid=29390 pwd=/root  #### clear

文章出自:CCIE那点事 http://www.jdccie.com/ 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。 禁止全文转载。
本文链接:http://www.jdccie.com/?p=4020转载请注明转自CCIE那点事
如果喜欢:点此订阅本站
  • 相关文章
  • 为您推荐
  • 各种观点

暂时还木有人评论,坐等沙发!
发表评论

您必须 [ 登录 ] 才能发表留言!