bash-bofh-2.05b强大的记录用户命令的bash patch |
前段时间为了找到一个跟踪用户命令的方法,苦思多日,不得答案。用mkfifo 做管道连接.bash_history文件,因为bash 在logout的时候无法读去管道里的东西,实验失败。最后还是老朋友eagle鹰给我了一个站点,上面有个bash-bofh-2.05b-0.0.1的东东,偶下载下来,将README文件翻译出来,实验后效果很理想,本着GPL精神,偶把汉化后的README帖出来给大家看看。
http://www.ccitt5.net/archives/
README for bash-2.05b BOFH 0.0.1 patch(johnzw汉化)
这个patch是把用户模块里运行在bash上的命令记录到syslog。这个patch的优点是不需要写入syslog的高级权限。因此用户运行一个shell时,syslog可以记录用户使用的命令,而且(倘若你有一个健全的syslog文件权限)用户不能修改或檫掉日志里的记录,相对而言,用户可以修改或檫掉与其包含相同记录信息的.bash_history文件,因为在用户自己的目录里这个文件的所有者是用户自己。当然,也可以通过设置把该history文件指向一个NULL设备从而逃避日志记录。
要使用这个patch,下面列出的命令对大多数人是必须的:
tar zxvf bash-2.05b.tar.gz
tar zxvf bash-bofh-2.05b-0.0.1.tar.gz
cd bash-2.05b
cat ../bash-bofh-2.05b-0.0.1/bash-bofh-2.05b-0.0.1 | patch -p1
**
The patch provides you with four new directives to configure
这个patch在你configure bash代码的时候提供了4个新的选项(./configure -- )
--enable-bofh (default)
开启bash-bofh记录。当该patch包被应用的时候,这是个缺省选项并不需要特别指定。这儿也有一个相对应的选项 --disable-bofh 关闭bash-bofh记录。
--disable-script-bofh (default)
缺省选项bash-bofh并不记录运行在交互式shell上的shellscript里运行的命令, Enabling logging of non-interactive commands can be fairly noisy since it means all commands run in /etc/rc.d/* , /etc/profile upon login etc etc is logged.
(偶这句话不会翻译,哪位高手指点一下)
然而如果你想记录如此多的命令,那么你可以通过 --enable-script-bofh这个选项来配置。
--with-bofh-logfacility (defaults to LOG_USER)
在这个选项的控制下,syslog模块里的bash-bofh默认情况下记录LOG_USER。%26quot;man 3 syslog%26quot; or %26quot;cat /usr/include/syslog.h%26quot; 能够提供你一个可用的syslog参数和等级列表。举个例子,如果想让bash-bofh 用LOG_LOCAL0参数代替LOG_USER 进行记录,你应该在./configure的时候给出如下参数:
--with-bofh-logfacility=LOG_LOCAL0
--with-bofh-loglevel (defaults to LOG_INFO)
这个参数和 --with-bofh-logfacility类似,但它是控制记录事件等级的。缺省的是LOG_INFO。 举个例子,想让bash-bofh 记录LOG_DEBUG来代替LOG_INFO ,你应该给出如下参数:
--with-bofh-loglevel=LOG_DEBUG
**
在bash-bofh-2.05-0.0.1的文件夹下有一个有效的子文件夹split-userlog,它可以对bash-bofh的日志存档文件(默认的是/var/log/messages)按照日志里出现的用户名进行有效的分离,分离出的文件以username.log保存。
下面的命令是安装这个插件必须的:
cd split-userlog
make
make install
可执行的二进制文件安装在/usr/local/sbin/目录下,名字split-userlog,权限755。
使用的语法是: split-userlog LOGFILE %26lt;OUTPUT_DIRECTORY%26gt;;
LOGFILE 应该包含 bash-bofh 行。 OUTPUT_DIRECTORY是一个选项,如果给定路径的话,split-userlog将把分离的结果写在OUTPUT_DIRECTORY下并以username.log命名,否则写在当前的目录下。
现在,在你疯狂的进行日志监控之前,我知道有很多人都在使用,而且是数以亿计的。这个patch的目的不是提供一个完美的日志以记录你电脑里的用户、守护进程或者幽灵使用过的命令。只有一种解决方案那就是在内核级别上做完全的审核,然后我们才能谈论特性损失。然而这个patch包给你一个非常好的能力来监控你的用户。
EF %26lt;ef@ccitt5.net%26gt;;
http://www.ccitt5.net
恩……不错,哈哈,不知道新的bash-3里有没有此功能,哎,不过估计是不会有了,,,
写得真是不错,我想这也许是很多*NIX管理员在多用户服务器环境下想要的东西。不知是否用源码级的高手,能对上面的patch作一定的核对,保证我们能安心的使用这个patch,毕竟这是外国人写的东西 :),希望我这个但心是多于的。
[quote]原帖由 %26quot;redeyes%26quot;]恩……不错,哈哈,不知道新的bash-3里有没有此功能,哎,不过估计是不会有了,,,[/quote 发表:
至于bash-3.0你可以继续关注上述网站,因为这个脚本是从bash-2.04开始出现的,估计以后会有3.0的update。
而且这个网站上有关“voicemail”的内容,个人感觉是下一代mail的代表。
|
|
< |
| 关于vmware4.5.2中安装suse9.2的问题,请指导 |
| 求助:这样的分区能够成功安装2Kserver和linux么共存么? |
| 求助,分区出现如下问题(有思路了,请高手求证我的思路正确否) |
| 雪地跪求gcc.rpm安装包~~~~ |
| 请问linux因该怎样分区。。我是蔡鸟请教大家。。。。 |
| Debian安装CD哪里有没有最新版本内核2.6版的? |
| linux认不到磁盘阵列上的分区(求助) |
| 关于SWAP分区大小的问题 |
| 请问,使用openssl创建证书时,如何在命令行里...详情请进... |
| 我的root用户什么命令都用不了! |
| GHOST能备份linux分区么?。 |
| 各位达人推荐几种linux分区的方式! |
| 求救,用GRUB还是不能安装FC3 |
| 请问我下载的红帽企业 Linux AS3-U3 应该怎样硬盘安装。。 |
| 请教内核编译时出现的问题(软件不能安装) |
| slackware 10.0 怎样把 lilo 装到所在分区的第一扇区 |
| 安装 问题 关于 Mandrake |
| 请教一个安装linux的问题!!!!急等!!!! |
| 安装软件需要依赖文件,但我在哪可以找到这个文件,并安装他 |
| 我的home分区为什么没动就是满的? |