Linux往管道写日志命令,Linux实现日志审记

关键命令

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’

说明

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值