在linux系统中想要记录所有登录过当前系统的用户操作,排查有人对当前系统做的何种操作导致系统问题,可以按照如下方法进行。

前言

在描述操作步骤之前,先说一下系统环境变量的相关配置文件

  • ~/.bashrc~/.bash_file,这两个文件是当前用户shell下生效的环境变量配置文件。修改完成之后需要source 一下对应的配置
  • /etc/profile/etc/bashsrc是全局变量。修改完成后所有的用户shell都会生效,这里我们改动的主要是/etc/profile这个文件,它有一个文件夹/etc/profile.d目录,其中也是对应的脚本,可以配置定制的环境变量脚本
    查看/etc/profile其中一段代码

    for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do #从/etc/profile.d目录下取出文件
    if [ -r "$i" ]; then  # 判断是否可执行if [ "${-#*i}" != "$-" ]; then #判断是否为交互式脚本,${-#*i}用来输出脚本类型,如果$-为交互式脚本类型(echo $-输出包含字母i). "$i" #是非交互脚本,不需要查看或者输入任何信息,即可直接执行else. "$i" >/dev/null #否则重定向到空,即不执行fi
    fi
    done
    

    关于交互脚本和非交互脚本的详细描述可以参考博文 https://blog.csdn.net/gui951753/article/details/79154496

实现

针对/etc/profile.d中脚本的执行方式,可以自己编写实现记录所有用户操作记录的脚本get_all_user.sh ,将该脚本放入到/etc/profile.d文件夹下,并source /etc/profile即可生效
该脚本在用户退出之后会在/tmp/baron目录下生成用户名的文件夹,并在该文件夹下生成对应的登录ip以及时间为文件名的用户操作记录文件

#get the operation of users on the server#设置终端显示符
#root@[/tmp/baron/]#
user=`whoami`
if [ "$user" == "root" ];thenPS1="`whoami`@"'[$PWD]#'
elsePS1="`whoami`@"'[$PWD]$'
fi#HISTFILE的记录方式是在用户退出后将history中的缓存写入到HISTFILE中
history#获取登录用户ip
USER_IP=`who -u am i 2>/dev/null|awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" == " " ];thenUSER_IP=`hostname`
fi#创建文件夹并设置权限
if [ ! -d /tmp/baron ];thenmkdir /tmp/baronchmod 777 /tmp/baron
fi
if [ ! -d /tmp/baron/${LOGNAME} ];thenmkdir /tmp/baron/${LOGNAME}chmod 300 /tmp/baron/${LOGNAME}
fi#设置history可以记录命令的文件大小
export HISTSIZE=8192
DT=`date "+%Y-%m-%d_%H:%M:%S"`
export HISTFILE="/tmp/baron/${LOGNAME}/${USER_IP}.baron.$DT"
export HISTTIMEFORMAT="%F %T "#只有root对该目录下所有文件有读写权限,防止其他用户改动
chmod 600 /tmp/baron/${LOGNAME}/*baron* 2>/dev/null

生成如下记录,可以看到有具体的登录设备ip以及对应的用户,文件中为用户的具体操作记录。非常直观

参考博文:
深入浅出理解交互式shell和非交互式shell、登录shell和非登录shell的区别 https://blog.csdn.net/gui951753/article/details/79154496
linux命令h—history https://blog.csdn.net/qq_23929673/article/details/97308965

linux系统 长久记录所有用户所有操作记录相关推荐

  1. 记录每个用户的操作记录(命令)

    通过设置日志文件可以对每个用户的每一条命令进行记录,这一功能默认是不开放的,为了打开它, 需要安装pacct工具, 并执行以下命令: #touch /var/log/pacct #accton /va ...

  2. Linux系统中的超级用户,普通用户,特殊用户(特殊用户)3种类型

    •超级用户: 在默认安装的初始情况下,Linux系统中的超级用户为root,也称其为根用户,具有系统中最高的权限.超级用户可以对Linux 系统做任何操作,比如终止进程.添加或删除硬件设备.超越任何用 ...

  3. linux系统下删除vsftp用户,Linux下VsFTP和ProFTP用户管理高级技巧 之一

    Linux下VsFTP和ProFTP用户管理高级技巧 FTP服务时互联网上比较古老的一种应用,至今Interner应用面非常广泛,但令管理员头痛不已的是其用户管理,既多且杂,如何解决这一问题呢?使用M ...

  4. suse LINUX系统中的,用户权限的问题。

    关于suse LINUX系统中的,用户权限的问题. 当我们大家用LL或LA命令来查看一下当前目录的相关信息时, 在最前面我们总能看到这样的信息提示: -drrr--o--- 这些就是相关的用户服务对本 ...

  5. linux禁止普通用户切换,Linux系统如何禁止普通用户切换root?

    Linux系统如何禁止普通用户切换root? 在上正文之前,我们先将一些基础的Linux用户以及用户组的相关命令: 1.添加用户 useradd [-g group] [-d user_home_di ...

  6. linux 查看非法用户登录,用短信报警来监控linux系统的非法登录用户

    用短信报警来监控linux系统的非法登录用户 为了保证linux系统的安全,我们可以写一段脚本来监控linux系统的用户登录情况,当登录IP地址不是我们指定的IP地址时则发出一条报警短信.这里我们间接 ...

  7. Linux系统之进入单用户模式的方法及相关作用

    一.单用户模式的介绍 忘记root密码是非常常见的,但是在Linux系统下,解决该问题也非常容易. 在Linux系统中,单用户模式经常用于在更改root密码,即就是当我们在忘记了Linux的root密 ...

  8. Linux系统下的nobody用户与nologin

    Unix/Linux系统下的nobody用户是什么? 1.Windows系统在安装后会自动建立一些用户帐户,在Linux系统中同样有一些用户帐户是在 系统安装后就有的,就像Windows系统中的内置帐 ...

  9. Linux系统下安装 pycharm2022社区版 步骤记录

    Linux系统下安装 pycharm2022社区版 步骤记录 1. 进入 pycharm 官网的 下载 界面: https://www.jetbrains.com/pycharm/download/# ...

最新文章

  1. ubuntu 客户端ssh连接服务器速度缓慢
  2. Android Touch事件传递机制 二:单纯的(伪生命周期)
  3. 实验三 图的操作与实现
  4. boost::log::filter用法的测试程序
  5. windows如何调整某个应用程序的音量 c++_微软对重启Windows 10的应用程序进行控制测试...
  6. DLL入门浅析(2)——如何使用DLL
  7. Microsoft.TeamFoundation.VersionControl.Client.dll的位置
  8. Hibernate-03-Hibernate的检索方式
  9. html算命源码,index.html
  10. 【Docker】seaweedfs的搭建与使用
  11. 微信公众号JSAPI支付对接
  12. android app 自动登录,Android APP首次登录和之后自动登录流程
  13. 生活随记-冬天的馈赠
  14. 上升了百分之几怎么算_求增加百分之几的应用题
  15. G - Nightmare Ⅱ (双向BFS)
  16. [FJOI2016]建筑师
  17. 妖精的尾巴手游快速升级辅助 爱蜂窝自动新手挂机升级
  18. Arangodb 条件查询
  19. CSS - 实现Loading加载动画
  20. BeanShell后置处理器

热门文章

  1. struct stat结构体的详解和用法
  2. 上交三月月赛[SJTU] 1106 sudoku
  3. SharePoint 2013 配置开发环境,需安装VS2012插件
  4. 关闭Windows 7中的 Program Compatibility Assistant
  5. 后序遍历的非递归算法python_刷题系列 - Python用非递归实现二叉树后续遍历
  6. oracle 开始一个事务,oracle的启动与关闭原理-事务commit或者rollback
  7. 镁光ssd管理工具 linux,在 SSD 上使用 Btrfs 文件系统的相关优化
  8. vue webpack打包入口文件是哪个_Vue项目起步
  9. oracle hot patch david,Oracle EBS使用adpatch工具打patch过程(hotpatch mode)
  10. java response.write_response设置编码方式 print和write方法的对比