1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > syslog-ng记录history日志

syslog-ng记录history日志

时间:2019-05-13 19:21:17

相关推荐

syslog-ng记录history日志

需求:使用syslog-ng记录服务器的日志信息并把每个用户的操作都记录下来并保存至mysql数据库里,前面介绍了syslog-ng的安装和配置及记录至mysql。这里只介绍bash记录history的用户信息及操作: 将history记录到syslog上面,并实时的传送到了远端的日志集中服务器上。 方法:使用bash4.1的新功能:历史命令保存到syslog!然后使用syslog-ng构建集中型日志服务器收集主机日志。 1、下载bash: #wget /gnu/bash/bash-4.1.tar.gz

#tar zxvf bash-4.1.tar.gz –C /tmp/bash-4.1

#cd /tmp/bash-4.1 2、修改源码 (根据个人需要,我只保留了pid,uid,sid等,参数请看目录下的shell.c中):

文件bashhist.c大约708行的位置开始,修改成以下一段:

if (strlen(line) < SYSLOG_MAXLEN)

syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "HISTORY: PID=%d UID=%d User=%s CMD=%s", getpid(), current_user.uid,current_user.user_name,line);

else

{

strncpy (trunc, line, SYSLOG_MAXLEN);

trunc[SYSLOG_MAXLEN - 1] = '\0';

syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "HISTORY (TRUNCATED): PID=%d UID=%d User=%s CMD=%s", getpid(), current_user.uid,current_user.user_name, trunc);

}

} 注:

ppid:跟踪sh切换后的用户

Sid: 跟踪 su 切换后的用户

第二段代表log长度超过600后使用的语句

修改config-top.h文件

view source

print?

1/*#define SYSLOG_HISTORY*/

2修改为

3#define SYSLOG_HISTORY 编译安装

# ./configure && make && make install

修改用户配置:

将用户的bash换成现在的bash4.1

# vi /etc/passwd

wsg:x:501:501::/home/wsg:/usr/local/bin/bash

这样日志就会记在/var/log/messages

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。