如下方法在centos5.x系统中通过.
在/etc/profile文件里加入如下语句:
1)使用script记录UID大于500的用户的所有操作,类似屏幕截图
-
- if [ $UID -gt 500 ]
- then
- exec /usr/bin/script -t 2>/tmp/$USER-$UID-$(date +%Y%m%d%H%M).date -a -f -q /tmp/$USER-$UID-$(date +%Y%m%d%H%M).log
- fi
script 可以把当前用户的所有键盘操作、屏幕输出以及错误信息等等保存到一个文件中;
使用exec可以防止用户自行退出script,当输入exit退出时,会连当前的终端一起关掉;exec还有执行完当前命令就退出当前shell的特性,也就是说,要把exec命令放在profile最后一行执行,因为exec后面的命令都执行不到。
为什么执行了上边的命令没有退出当前shell呢,因为script命令一直在持续运行,也就是说在持续记录用户的操作,并不是说执行一次马上就结束了。
-a 用append的形式在文件中追加,若不适用此参数,同名的记录文件会被覆盖,而且没有提示;
-f Flush output after each write;
-q be quiet
-t 生成时间文件,有了这个文件,可以使用 scriptreplay 命令回放;
如:scriptreplay username-500-201111262310.date username-500-20111126231.log
要注意“时间文件”和“记录文件”的顺序,不要颠倒了;
要保证该文件当前登录用户可写,不然无法正常记录!
因为文件是实时更新的,如果tail、more自己的记录文件,会形成很有意思的无限循环。
2)使用环境变量记录用户操作
在/etc/profile和/etc/bashrc中添加以下命令,并 source 一次
- export PROMPT_COMMAND='{ date "+[ %Y%m%d %H:%M:%S `whoami` ] `history 1 | { read x cmd; echo "$cmd"; }`"; } >> /var/log/command.log'
这条命令会把登录用户所有按回车输入的内容都记录到command.log文件中去,即使是敲错的命令也一样;
要保证command.log文件所有用户都可写,使用chattr命令防止用户自行修改记录,
- chattr +a /var/log/command.log
再配合logrotate定期进行log轮替。
- /var/log/command.log{
- prerotate
- /usr/bin/chattr -a /var/log/command.log
- endscript
- compress
- delaycompress
- notifempty
- rotate 1000
- size 10M
- postrotate
- /usr/bin/chattr +a /var/log/command.log
- endscript
- }
解释一下PROMPT_COMMAND环境变量,这个变量会优先于 PS1 变量执行,屏幕上
显示完PROMPT_COMMAND定义的内容后,才会显示 PS1 提示符的内容;也就是说,按回车后,先输出 PROMPT_COMMAND 的内容到屏幕上,然后才输出 PS1 ;上边给出的命令因为做了重定向,所以不会输出到屏幕上,而是command.log文件中。
注:在 /etc/bashrc 文件中有对 PROMPT_COMMAND 变量进行赋值,
会把/etc/profile中添加的PROMPT_COMMAND 变量值覆盖掉(为什么会覆盖掉请参考我以前的一篇文章 《bash中profile等配置文件执行顺序”》),
所以要在 /etc/bashrc 中的最后也添加以上命令。因为在 ~/.bashrc 中有一个判断并调用/etc/bashrc的内容,为了保证肯定能够执行到这个命令,要在/etc/profile和/etc/bashrc中都添加以上命令。
3)其实可以根据自己的需要输出不同的内容,比如下边的命令,记录了更加详细的信息。自己编写时,需要注意命令中的单双引号嵌套,很容易因为引号的配对问题出现命令不能通过的问题。
- export PROMPT_COMMAND='{ date +"%Y%m%d %H:%M:%S [$(who am i | tr -s [[:blank:]] | cut -d" " -f1,2,5)-> ${USER}] $( history 1 | { read num cmd; echo ${cmd}; })" ; } >> /var/log/command.log'
分享到:
相关推荐
linux记录用户登录操作日志.日志分析 每次用户退出后都会产生以用户名、登录IP、时间的日志文件,包含此用户本次的所有操作(root用户除外)
另一种记录用户操作的方法是使用`script`命令。与前一种方法不同的是,`script`命令可以在终端会话期间记录所有输入和输出,并将它们保存到指定文件中。 **1. 修改`/etc/profile`** 同样地,在`/etc/profile`文件...
"Linux用户操作记录工具"就是针对这一需求而设计的,主要用于跳板机(jump server)上的操作监控。跳板机是一种用于安全访问远程服务器的中间设备,通过它,管理员可以集中管理对多台服务器的访问,同时记录所有的...
Linux 操作用户及权限分配 本资源将详细介绍 Linux 操作系统中的用户及权限分配,包括查看用户、用户管理、权限分配等内容。 一、查看用户 Linux 系统中有多种方式来查看当前用户的信息,常用的命令包括 whoami...
Oracle 数据库用户锁定解决方案在 Linux 下的操作记录 Oracle 数据库用户锁定是指用户账户被锁定,无法登录数据库的情况。这种情况可能是由于用户密码输入错误次数超过限制,或者是数据库管理员对用户账户进行了...
在Linux系统中,为了保护隐私和安全,有时我们需要清除操作信息的记录,特别是当有多人共享同一用户账户或者系统的情况。以下将详细讲解如何在Linux环境下清除这些敏感数据。 首先,我们要了解两种主要的记录来源:...
### Linux操作记录知识点详解 #### 一、检查与安装VSFTPD **1. 检查是否已安装VSFTPD** ``` rpm -q vsftpd ``` 该命令用于查询系统中是否已安装了VSFTPD软件包。如果系统已安装VSFTPD,则会显示版本信息;如果...
【Linux 操作系统用户操作审计】 Linux操作系统是目前企业中广泛应用的服务器操作系统,它在企业信息化系统中扮演着至关重要的角色。由于系统管理员、最终用户以及第三方维护人员常常需要通过终端或SSH远程登录...
在root权限下运行,默认所有记录都会记录在/tmp/history目录下
Linux系统的命令行界面是一个非常强大的工具,它允许用户通过输入各种命令来执行各种操作。为了方便学习和使用,下面将详细解释文件中给出的Linux命令。 1. alias:定义或显示别名。它允许用户创建一个命令的别名,...
Linux 操作系统中,用户管理是非常重要的一方面,用户的创建、修改、删除都是常见的操作。下面我们将详细介绍 Linux 创建用户命令的使用方法。 创建用户 在 Linux 中,创建用户使用 `useradd` 命令。例如,创建一...
**多用户操作系统的安全** 多用户系统提供了更好的安全管理,通过权限设置可以保护用户的数据不受其他用户访问。例如,通过调整文件权限,用户可以限制其他人对自己私有文件的访问。然而,管理员的安全意识和技术...
Shell是Linux操作系统中的一个命令行解释器,它提供了一个用户与系统交互的界面。通过shell,用户可以输入命令来执行各种操作,包括文件管理、进程控制、文本处理等。在本例中,我们将利用shell脚本的能力来处理QQ...
这种程序通常用于监控和记录用户在操作系统上的所有按键输入,这在系统调试、用户行为分析或者恶意软件中都有可能被应用。下面将详细介绍相关的Linux内核机制和安全议题。 首先,要理解Linux内核键盘驱动的工作原理...
本次实验旨在帮助学习者深入理解并掌握Linux操作系统中的用户管理和系统登录操作。具体包括以下几个方面: 1. **掌握系统远程登录的常用命令**:这包括telnet、rsh等命令的使用方法及其应用场景。 2. **理解与用户...
在安装Linux操作系统方面,有三种常见的方法:一是通过光盘安装,用户可以在软件店购买Linux发行版的光盘,如Red Hat、TurboLinux或Corel,然后直接安装;二是网络安装,用户可以从发行商的官方网站或其他下载站点...
在该解决方案中,作者使用了Linux操作系统的模块机制来实现动态装载模块,可以根据用户的需要,在不需要对内核进行重新编译的情况下,动态地插入或移除模块。该机制具有很高的灵活性和可扩展性,可以满足不同的安全...
本文将详细介绍如何在Linux环境下实现用户操作记录的监控,并解释所提供的配置文件和脚本的工作原理。 首先,确保系统中已经安装了日志守护进程rsyslogd,它负责收集和处理来自不同来源的日志信息。如果rsyslogd未...
首先,Shell是Linux操作系统中的一个重要组成部分,它扮演着用户与操作系统之间交互的桥梁。Shell是一个命令行解释器,它接收用户输入的命令,然后将其转化为操作系统可以执行的指令。常见的Shell类型有Bourne Shell...
Linux是一个多任务、多用户的操作系统,它以其良好的特性和资源的免费性而得到了蓬勃的发展。 本书通过大量的图示和实例,深入浅出的介绍了Linux的基本原理和应用。主要包括Linux的基本概念和操作,Linux的树型...