免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1140 | 回复: 3
打印 上一主题 下一主题

bash-bofh-2.05b强大的记录用户命令的bash patch [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-15 09:06 |只看该作者 |倒序浏览
前段时间为了找到一个跟踪用户命令的方法,苦思多日,不得答案。用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。"man 3 syslog" or "cat /usr/include/syslog.h" 能够提供你一个可用的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  <OUTPUT_DIRECTORY>;

LOGFILE 应该包含 bash-bofh 行。 OUTPUT_DIRECTORY是一个选项,如果给定路径的话,split-userlog将把分离的结果写在OUTPUT_DIRECTORY下并以username.log命名,否则写在当前的目录下。

现在,在你疯狂的进行日志监控之前,我知道有很多人都在使用,而且是数以亿计的。这个patch的目的不是提供一个完美的日志以记录你电脑里的用户、守护进程或者幽灵使用过的命令。只有一种解决方案那就是在内核级别上做完全的审核,然后我们才能谈论特性损失。然而这个patch包给你一个非常好的能力来监控你的用户。

EF <ef@ccitt5.net>;
http://www.ccitt5.net

论坛徽章:
0
2 [报告]
发表于 2004-11-15 09:49 |只看该作者

bash-bofh-2.05b强大的记录用户命令的bash patch

恩……不错,哈哈,不知道新的bash-3里有没有此功能,哎,不过估计是不会有了,,,

论坛徽章:
0
3 [报告]
发表于 2004-11-15 09:53 |只看该作者

bash-bofh-2.05b强大的记录用户命令的bash patch

写得真是不错,我想这也许是很多*NIX管理员在多用户服务器环境下想要的东西。不知是否用源码级的高手,能对上面的patch作一定的核对,保证我们能安心的使用这个patch,毕竟这是外国人写的东西 :),希望我这个但心是多于的。

论坛徽章:
0
4 [报告]
发表于 2004-11-15 10:10 |只看该作者

bash-bofh-2.05b强大的记录用户命令的bash patch

[quote]原帖由 "redeyes"]恩……不错,哈哈,不知道新的bash-3里有没有此功能,哎,不过估计是不会有了,,,[/quote 发表:


至于bash-3.0你可以继续关注上述网站,因为这个脚本是从bash-2.04开始出现的,估计以后会有3.0的update。

而且这个网站上有关“voicemail”的内容,个人感觉是下一代mail的代表。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP