`
wb284551926
  • 浏览: 555355 次
文章分类
社区版块
存档分类
最新评论

centos配置history记录每个用户执行过的命令(转载)

 
阅读更多

对于系统管理员而言,history是一个很重要的命令,它能显示出之前在shell中执行过的命令,如果服务器发生异常,可以从这些命令中分析造成问题的原因。但是history显示的信息有局限性,默认保存最近的1000条命令,从历史信息中只能看到某个命令的执行有可能导致系统出了问题,对于进一步的追踪问题却无济于事。若能定位到是哪个用户在哪个时间在哪执行的命令,那将是多么愉快的一件事情!说了这么多,进入正题,centos中具体配置如下:

在/etc/profile中加入以下脚本

 

[plain] view plain copy
 
 
  1. #history  
  2. USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`  
  3. HISTDIR=/usr/share/.history  
  4. if [ -z $USER_IP ]  
  5. then  
  6. USER_IP=`hostname`  
  7. fi  
  8. if [ ! -d $HISTDIR ]  
  9. then  
  10. mkdir -p $HISTDIR  
  11. chmod 777 $HISTDIR  
  12. fi  
  13. if [ ! -d $HISTDIR/${LOGNAME} ]  
  14. then  
  15. mkdir -p $HISTDIR/${LOGNAME}  
  16. chmod 300 $HISTDIR/${LOGNAME}  
  17. fi  
  18. export HISTSIZE=4000  
  19. DT=`date +%Y%m%d_%H%M%S`  
  20. export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"  
  21. export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"  
  22. chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null  

 

 

这段脚本的作用是把每个用户执行的命令记录在/usr/share/.history下以用户名命名的目录下,历史记录文件名根据用户ip和时间命名。打开/usr/share/.history目录会发现里边保存了之前记录的历史命令文件

 


 

在/etc/bashrc中加入几个环境变量,用于history命令显示用户ip等内容

 

[plain] view plain copy
 
 
  1. #history  
  2. USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`   
  3. HISTFILESIZE=4000  
  4. HISTSIZE=4000  
  5. HISTTIMEFORMAT="%F %T ${USER_IP} `whoami` "  
  6. export HISTTIMEFORMAT  


在终端中输入 history,显示效果如下:

 

 

 

 

 

原文地址:https://blog.csdn.net/tomspcc/article/details/52943702

分享到:
评论

相关推荐

    CentOS Apache配置详解

    在 CentOS 中,还有一个特殊的配置文件/etc/httpd/conf.d/*.conf, 这个文件夹中可以包含多个小配置文件,每个文件可以单独配置 Apache 的某个方面。 三、 Apache 的模块 Apache 支持多种模块,这些模块可以提供...

    Centos7.9安装配置vsftpd

    在本文中,我们将详细介绍如何在 CentOS 7.9 上安装和配置 vsftpd,以实现匿名用户的上传和下载操作。 一、关闭防火墙 在配置 vsftpd 之前,需要关闭防火墙,以免防火墙的限制导致-vsftpd 无法正常工作。可以使用...

    Centos配置SFTP用户

    - 创建用户组和用户:使用`groupadd`命令创建一个名为sftpuser的用户组,随后使用`useradd`命令创建一个SFTP用户,比如sftpuser01。 - 设置SFTP根目录:使用`mkdir -p`创建一个专用目录,例如`/var/sftp`,作为SFTP...

    CentOS5中vsftp虚拟用户配置

    CentOS5中vsftp虚拟用户配置是一种常见的文件服务器配置方式,本文将介绍在CentOS5.3下vsftp虚拟用户配置的实例,该配置方式可以在CentOS5中通用。 vsftp虚拟用户配置的主要步骤 1. 安装db4-utils软件包 在开始...

    CentOS安装FTP及配置用户.doc

    CentOS 安装 FTP 及配置用户 在 Linux 系统中,FTP 服务器是一种常用的网络服务,用于文件传输和共享。CentOS 安装 FTP 及配置用户是非常重要的。下面我们将介绍如何在 CentOS 系统上安装 vsftpd 作为 FTP 服务器,...

    linux centos环境kettle部署与定时作业执行

    Linux Centos 环境 Kettle 部署与定时...Linux Centos 环境 Kettle 部署与定时作业执行需要安装和配置 java 环境,下载和部署 Kettle,配置定时作业执行命令。同时,需要注意一些注意事项,以确保 Kettle 的正常运行。

    centos7系统VNC多用户配置.txt

    解决添加非root用户,VNC不能正常启动。本人实测操作文档,我采用centos7.2

    centos配置openmeetings

    【知识点详解】 1. **CentOS操作系统**:CentOS是一个基于Linux的开源操作系统,它以Red Hat Enterprise ...这个过程需要一定的Linux和服务器管理经验,确保每个步骤都正确执行,才能成功搭建并运行OpenMeetings服务。

    centos命令大全手册

    这些命令可以帮助用户更好地管理和维护 CentOS 系统。 一、系统信息命令 1. uname -m:显示机器的处理器架构。 2. uname -r:显示正在使用的内核版本。 3. dmidecode -q:显示硬件系统部件信息。 4. hdparm -i /...

    CentOS 7中sudo权限配置

    在配置完成后,使用sudo命令执行操作时,系统会根据/etc/sudoers文件中的规则,判断当前用户是否有权限执行该命令。如果用户vic尝试执行未授权的关机命令,例如: ```bash vic@CentOS7 ~ $ sudo shutdown -h now ...

    Centos 8 vsftpd多用户FTP服务器配置完美方案——同时解决PORT和PASV模式

    Centos 8 vsftpd 多用户 FTP 服务器配置完美方案 在CentOS 8系统中,配置vsftpd多用户FTP服务器,实现多虚拟用户FTP连接,并同时解决FTP PORT和PASV模式下的问题。 vsftpd简介 vsftpd是非常流行的FTP服务器软件,...

    Centos7配置logrotate执行Tomcat日志轮转

    在`/etc/crontab`或者通过`crontab -e`命令编辑个人用户crontab,设置定时任务,例如`0 2 * * * /usr/sbin/logrotate -f /etc/logrotate.d/tomcat`,这将在每天凌晨2点执行日志轮转。 5. 执行测试与监控:在配置...

    centos 6 ipv6 ip配置

    CentOS 6 IPv6 IP 配置需要经过多个步骤,包括配置网络设置、配置网络接口、重启网络服务、测试 IPv6 连接、配置 ip6tables 服务、重启 ip6tables 服务和在路由器上配置 IPv6 地址。只有正确地完成这些步骤,才能...

    CentOS配置smaba与Windows共享

    CentOS 配置 Samba 与 ...CentOS 配置 Samba 与 Windows 共享文件需要完成以下步骤:安装 Samba、配置 Samba,让其能够在开机时启动、新建 Samba 用户、配置 Samba 配置文件、让 Samba 通过防火墙、启动 Samba 服务。

    centos 配置本地yum源库

    在 CentOS 系统中,配置本地 Yum 源库是一项重要的任务,特别是在没有网络连接或者网络不稳定的情况下,可以通过本地 Yum 源库来安装和更新软件包。以下是一步一步教你如何在 CentOS 上配置本地 Yum 源库。 首先,...

    CentOS MySQL启动和关闭命令

    对于启动与关闭MySQL服务,主要涉及以下两个命令: 1. **启动MySQL服务**: ```bash /usr/local/mysql/share/mysql/mysql.server start ``` 2. **关闭MySQL服务**: ```bash /usr/local/mysql/share/mysql/...

    CentOS 7配置yum源

    "CentOS 7配置yum源" CentOS 7 配置 yum 源是 Linux 运维中的一项重要任务。yum 源是 CentOS 操作系统中的一种软件包管理器,负责管理和安装软件包。正确配置 yum 源可以提高软件包的安装速度和可靠性。 配置 yum...

    CentOS7 syslog日志转发配置.docx

    ### CentOS 7 syslog日志转发配置详解 #### 一、Syslog简介 Syslog是一种广泛应用于网络设备的日志记录协议,主要用于将系统日志信息发送到特定的日志服务器上进行集中管理和监控。这对于大型网络环境来说尤其重要...

    centos7基础命令操作

    [ifconfig 命令执行截图] 2. cd 命令:用于切换到指定目录。例如,输入 cd /usr/bin 可以切换到 usr/bin 目录下。 3. ls 命令:用于查看当前路径下的文件和目录。例如,输入 ls -l 可以显示当前目录下的所有文件和...

    centos nfs的配置

    在深入探讨CentOS NFS(Network File System)的配置细节前,我们先来简要了解NFS的基本概念。NFS是一种网络协议,允许一个系统在网络上共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远程系统...

Global site tag (gtag.js) - Google Analytics