Linux中的PROMPT_COMMAND会记录下出现提示符前面的命令,利用这个特性可以实现记录所有用户的操作记录。
root用户身份下,进行以下操作
vi /etc/profile #在最后一行追加以下环境变量 export HISTORY_FILE=/var/log/`date '+%y-%m-%d'`.log export PROMPT_COMMAND='{ date "+%y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(pwd) #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >> $HISTORY_FILE' #保存并重新编译 source /etc/profile
上面的和网上其它博客中的内容类似,但是仔细思考一下,还是存在几个问题
1. 首先root用户创建的HISTORY_FILE默认情况下只有root用户有rw权限,其它用户只有r的权限,这就导致其它用户的操作记录无法写入,需要将HISTORY_FILE赋予所有的读写权限
2. export PROMPT_COMMAND 如果将PROMPT_COMMAND导出到用户工作区,那么对于有经验的用户就可以做赋值操作 export PROMPT_COMMAND =“” ,简单的语法就会导致记录功能当前session端不可用,所以PROMPT_COMMAND必须设置成只读的属性,readonly PROMPT_COMMAND
相关推荐
2. **定制审计策略**:通过自定义`PROMPT_COMMAND`,我们可以实现不仅记录命令,还能记录操作时间、用户信息等重要数据。例如,通过设置`PROMPT_COMMAND`为一个脚本,该脚本在每次命令执行后自动将相关信息写入安全...
一种简单的实现方法是利用`history`命令将用户操作记录发送到syslog系统日志服务中。这种方式相对容易实现,并且可以实时地将记录发送到远程日志服务器进行存储和分析。 ##### 4.3 方案实施 **环境准备** - **...
### Linux 101 Hacks_CN - 关键知识点解析 #### 一、基本命令与技巧 **技巧1:CDPATH: 设置cd命令的基目录** - **知识点**: `CDPATH` 是一个环境变量,用于定义当用户试图切换到不存在的目录时,`... PROMPT_COMMAND...
总的来说,通过巧妙地利用`PROMPT_COMMAND`和ANSI转义序列,可以在Linux控制台上轻松实现动态显示当前时间,从而提高工作效率。了解这些基础知识不仅有助于日常操作,还能为更复杂的shell脚本编程打下坚实的基础。
如果希望将用户执行的每一个命令都记录到特定的日志文件中,可以利用`PROMPT_COMMAND`环境变量。这个变量会在每个命令提示符显示之前被执行。通过设置`PROMPT_COMMAND`,我们可以让每个命令的执行记录被写入日志,...
- **实现方法**:通过修改`/etc/bashrc`或`~/.bashrc`文件,设置环境变量`PROMPT_COMMAND`来实现在每次登录时显示当前时间。 - **具体步骤**:在文件中添加以下内容:`export PROMPT_COMMAND='echo -ne "\033[2;999r...
Linux 操作系统基础教程 清华大学信息学院计算机系 目 录 前言..........................................................................................................................................
《Linux101 Hacks 2rd》是一本专为Linux爱好者、系统管理员和技术人员编写的书籍,旨在通过一系列实用技巧帮助读者更高效地使用Linux操作系统。本书涵盖了从基本命令到高级功能的多个方面,适合不同程度的用户学习。...
2. **Bourne-Again Shell (bash)**:扩展了Bourne Shell的功能,增加了历史记录等功能,是大多数Linux系统的默认Shell。 3. **C Shell (csh)**:引入了一些新的语法特性,如变量赋值语法。 4. **T C Shell (tcsh)**...
Shell命令在IT行业中,特别是在Unix/Linux和Windows操作系统中,是一个非常重要的工具,它允许用户执行系统级别的命令,操作文件和程序。在这个“Shell的妙用”主题中,我们将深入探讨如何利用Shell函数来调用IE...
在安装Git64 for Windows时,用户需要注意选择正确的安装选项,如路径配置、文本编辑器设置以及是否勾选“Use Git from the Windows Command Prompt”等,以便与现有的开发环境无缝集成。安装完成后,可以通过命令行...
【Linux Shell Bash编程基础】 1. **什么是Shell?** Shell是操作系统中用户与内核交互的接口,它充当了用户与系统之间的桥梁。...在实际操作中,还需要了解更多的Bash特性和高级用法,以便更灵活地利用Linux系统。
3. **选择安装类型**:可以选择“Run Git from the Windows Command Prompt”(推荐)或“Run Git and included Unix tools from the Windows Command Prompt”。前者会在命令行环境下使用Git,后者还会包含一些Unix...
在Linux和macOS系统中,Terminal是不可或缺的工具,而在Windows系统中,对应的称为命令提示符(Command Prompt)或者PowerShell。 描述中提到的"vim配置"是指Vim编辑器的个性化设置。Vim是一款强大的文本编辑器,...
- **配置环境变量**:勾选“Git from the Windows Command Prompt”选项,以便在命令提示符下直接使用Git命令。 ##### 3. 配置个人信息 安装完成后,需要配置Git的用户名和邮箱地址,这是为了在提交代码时能够正确...