使用srcrpm包重新编译bash使之能够输出日志到rsyslog的local1

本文介绍了如何下载bash的src rpm包,安装源码,添加patch,制作新的rpm包,然后在其他服务器上安装并配置rsyslog或syslog-ng,将bash命令日志输出到特定日志文件。
摘要由CSDN通过智能技术生成
1. 下载对应版本的src rpm包
查看bash版本
bash --version
下载对应版本的src.rpm包
wget http://vault.centos.org/6.7/os/Source/SPackages/bash-4.1.2-33.el6.src.rpm


2. 安装bash源码rpm
yum install -y mock
useradd -s /sbin/nologin mockbuild
rpm -ivh bash-4.1.2-33.el6.src.rpm
ll /root/rpmbuild

3. 添加patch到源码
cp /usr/local/src/bash/Bash/bash-centos6-irsensor-new.patch /root/rpmbuild/SOURCES
vim SPECS/bash.spec
添加
Patch147: bash-centos6-irsensor-new.patch
%patch147 -p1 -b .history_syslog


4. 制作rpm包
yum install -y texinfo ncurses-devel
cd /root/rpmbuild
rpmbuild -ba SPECS/bash.spec

注意:以上的步骤为编译rpm的过程,编译好bash的rpm之后,其他服务器只需要从下面步骤开始做即可。

5. 安装新的bash
ll RPMS/x86_64/
rpm -ivh --force bash-4.1.2-33.el6.x86_64.rpm

6. 配置把操作命令打印到日志文件中

如果用的rsyslog
vim /etc/rsyslog.conf
添加
local1.*                                                /var/log/bashcmd.log
重启rsyslog
/etc/init.d/rsyslog restart

如果用的syslog-ng
vim /usr/local/syslog-ng/etc/message.conf
添加
# 记录bash的命令日志
filter f_bash { facility(local1) and level(debug); };
destination d_bash { file("/var/log/bashcmd.log"); };
log { source(s_internal); filter(f_bash); destination(d_bash); };
重启syslog-ng
killall syslog-ng
/usr/local/syslog-ng/sbin/syslog-ng

7. 测试
一定退出当前登录的控制台,再重新登录随便敲几个命令,并查看日志
ls
pwd
date
tail -f /var/log/bashcmd.log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值