首页 > 系统相关 >Linux 基于history命令记录操作用户,命令执行时间,登陆IP等信息

Linux 基于history命令记录操作用户,命令执行时间,登陆IP等信息

时间:2023-02-24 10:05:54浏览次数:37  
标签:IP am 远程登陆 命令 登陆 Linux history


    Linux 基于history命令记录操作用户,命令执行时间,登陆IP等信息

Linux默认的history命令是一个常用的系统内置命令,该命令用来记录在某一个的所有使用过的命令的历史,但默认实在是十分简略,只记录有所执行的命令并没有记录在什么时间,什么人(哪个用户),通过何种方式登录系统(是远程连接系统还是本地登陆所执行的命令??)这些比较重要的信息,这些重要的信息也是日后运维审计的一部分,那么,我们可以改动这个命令来实现 history命令增加记录重要信息:命令执行时间,命令执行用户,命令执行时的登陆方式这三样东西吗? 答案当然是肯定的。

第一,who am i 命令

这个命令是相对于当前终端的命令,也就是只显示当前终端的登陆信息,如果是远程登陆,比如xshell,ssh 这样的登陆方式,示例如下:

本机本地登陆:

Linux 基于history命令记录操作用户,命令执行时间,登陆IP等信息_shell

xshell 方式登陆:

Linux 基于history命令记录操作用户,命令执行时间,登陆IP等信息_shell_02

 

可以看到,本地登陆和远程登陆 执行who am i 的差别是 本地没有IP,登陆方式为tty1, 远程登陆显示IP,登陆方式为pts/0 。

第二,历史命令 history的默认形式和优化后的形式

默认形式:

Linux 基于history命令记录操作用户,命令执行时间,登陆IP等信息_python_03

优化后的形式:

Linux 基于history命令记录操作用户,命令执行时间,登陆IP等信息_python_04

第三,如何优化? 编辑 /etc/profile 文件,这个文件是全局的,或者编辑用户的环境变量配置文件  ~/.bash_profile,  推荐使用全局环境变量文件  也就是  /etc/profile, 在该文件末尾添加如下内容:

if [ `who am i| awk '{print $NF}'|awk -F'(' '{print NF}'` -eq 2 ];then
unset HISTTIMEFORMAT
export HISTTIMEFORMAT="[%F %T]-[`whoami`]- at [`who am i| awk '{print $NF}'`] "
else
unset HISTTIMEFORMAT
export HISTTIMEFORMAT="[%F %T]-[`whoami`]- at [`hostname`] "
fi

以上脚本大意为 判断是否远程登陆,如果是远程,显示IP,如果不是远程而是本地登陆,历史命令记录终端所在机器的hostname,unset 是为了防止原变量干扰。

标签:IP,am,远程登陆,命令,登陆,Linux,history
From: https://blog.51cto.com/u_15966109/6082646

相关文章

  • su和sudo命令的用法与区别
           su和sudo命令的用法与区别su是setuser的简写,翻译成大白话就是设定用户的意思。sudo命令也是一个组合命令,意为setuserdo,翻译成大白话就是设定用户......
  • Linux用户权限管理之 su和sudo
                      Linux用户权限管理之su和sudo首先需要说明,su和sudo这两个命令产生的原因。根本原因在于Linux系统是一个多角色的......
  • Linux docker的网络隔离方案和网络模式的使用问题
        Linuxdocker的网络隔离方案和网络模式的使用问题docker的网络管理比较复杂,是由于它的网络是基于Linux内核的namespace开始。docker刚安装完毕后,最开始的docker......
  • Linux centos7升级内核(两种方法:内核编译和yum更新)
          Linuxcentos7升级内核(两种方法:内核编译和yum更新)Linux的内核概念不用说大家也很清楚,正是内核版本的不同,才有Linux发行版本的说法,现在主流的centos应该都......
  • Linux docker的网络独立IP的配置(pipework实现方式)
         Linux docker的网络独立IP的配置(pipework实现方式)docker一个镜像作为容器启动后,通常会在宿主机同时生成一个名称为docker0的虚拟网卡,该网卡作为桥接网卡......
  • 修改sch_pcell iprobe的默认阻值
    copy一个类似工艺的sch_pcell库到自己工作目录下,地址写进cds.lib;CIW--Tools--CDF--Edit,CDFlayer选Base,把lib和cell选对,然后输入Filename(iprobe.cdf.il)点CDF......
  • Linux学习总结
    Linux学习笔记一、基本Liunx命令二、管道符、重定向与环境变量三、Vim编辑器四、Shell命令脚本五、用户身份与文件权限六、存储结构与磁盘划分七、RAID与LVM磁盘阵列技......
  • linux 移植 i2CTools
    一、I2C-Tools介绍i2c-tools工具是一个专门用来调试i2c的。并且是开源的。它可以:1、检测有几组i2c总线在系统上。2、查看挂载在i2c上面设备寄......
  • 2023年2月24日学习Linux: 硬盘,文件格式
    )掌握在Linux系统中,每个设备都被当初一个文件来对待。2)掌握各种设备在Linux中的文件名2.硬盘的结构及硬盘分区(详见linux系统管理P301)1)了解为什么要进行硬盘分区:a)......
  • IDEA&Eclipse快捷键对照表
    在Mac中commond替换Ctrloption替换AltIDEACommentEclipseCommentRemarkCtrl+Alt+H调用层次,方法调用Ctrl+Alt+H开放的调用层次结构Alt+F7查找光标......