如何在Linux上自动记录所有用户的终端会话活动

不久前,我们写了一篇文章,使用script命令记录Linux终端会话活动。

今天,我们还将讨论相同的主题。

但是,本教程允许您自动记录所有用户的终端会话活动。

我建议管理员将此功能作为关键任务服务器上安全检查表的一部分包含在内。

如果任何用户活动导致服务器出现问题,这将帮助您立即解决问题。

通过检查特定用户的会话活动文件,您可以轻松地确定他/她所做的事情。

而且,它可以帮助您随时获取命令输出,也可以保留它以备将来参考。

默认情况下,每个人都希望使用history命令来查看终端中先前输入的命令。是的,它很好,但是不幸的是它没有显示以前执行的命令的输出。

可以使用script命令来完成。这样做,将以下脚本添加到/etc/profile文件中。每当用户登录时,它将自动开始记录用户的终端会话。

什么是脚本命令

脚本是一个UNIX命令行应用程序,它记录一个终端会话(换句话说,它记录了终端上显示的所有内容)。

它将输出作为文本文件存储在当前目录中,默认文件名是typescript。

什么是scriptreplay

该程序使用时间信息来重放打字稿,以确保输出以与记录脚本时最初出现的速度相同的速度发生。

如何检查Linux上是否安装了脚本命令

该脚本是Linux Core应用程序的一部分,默认情况下已安装在大多数Linux发行版中。

在基于RHEL的系统上,脚本命令是“ util-linux-ng”软件包的一部分,在基于Debian的系统上,脚本命令是“ bsdutils”软件包的一部分。

对于基于RHEL的系统,请使用rpm命令

# rpm -qf /usr/bin/script

util-linux-2.32.1-8.el8.x86_64

# rpm -qf /usr/bin/scriptreplay

util-linux-2.32.1-8.el8.x86_64

对于基于Debian的系统,请使用dpkg命令

# dpkg -S /usr/bin/script

bsdutils: /usr/bin/script

# dpkg -S /usr/bin/scriptreplay

bsdutils: /usr/bin/scriptreplay

什么是/etc/profile文件?

在Linux上有什么用该/etc/profile文件用于将全局Linux系统环境变量设置到用户的外壳程序。每当用户输入bash shell登录名时,该文件将自动执行。使用您喜欢的文本编辑器打开“ /etc/profile”文件,然后添加以下代码。

# vi /etc/profile

#Script to Record the User's Terminal Session

if [ "x$session_record" = "x" ]

then

timestamp=`date "+%m%d%Y%H%M"`

output=/var/log/session/session.$USER.$$.$timestamp

session_record=started

export session_record

script -t -f -q 2>${output}.timing $output

exit

fi

确保/var/log/session系统上已经存在输出路径目录。如果没有,请创建它。

# mkdir /var/log/session

将/var/log/session目录许可权更改为777,这将允许所有用户在会话目录中写入其会话活动。要了解有关Linux文件权限的更多信息。

# chmod 777 /var/log/session

如何检查此脚本是否按预期工作?

完成所有前提条件后,我们将在终端中运行一些命令以检查此实验。

让我们假设你有三个用户:daygeek,magi,和tanisha。我们将在每个会话中运行一些命令以验证此测试。

我们以daygeek用户身份运行以下命令。

$ uname -a

$ arch

$ hostname -I

$ exit

我们以magi用户身份运行以下命令。

$ w

$ date

$ whoami

$ cat /etc/centos-release

$ exit

我们以tanisha用户身份运行以下命令。

$ rpm -q kernel

$ history

$ last reboot

$ exit

我们以root用户身份运行以下命令。

# whoami

# pwd

# host 2daygeek.com

# host magesh.co.in

# exit

如何使用script命令在Linux上列出记录的会话

我们已经从所有用户会话中成功执行了一些命令。使用ls命令查看记录的会话(ls代表列表目录内容)。

# ls -lh /var/log/session

total 32K

-rw-rw-r-- 1 daygeek daygeek 2.0K Jul 24 17:16 session.daygeek.26452.072420191715

-rw-rw-r-- 1 daygeek daygeek  784 Jul 24 17:16 session.daygeek.26452.072420191715.timing

-rw-rw-r-- 1 magi    magi     835 Jul 24 17:14 session.magi.26394.072420191713

-rw-rw-r-- 1 magi    magi     591 Jul 24 17:14 session.magi.26394.072420191713.timing

-rw-r--r-- 1 root    root     957 Jul 24 17:18 session.root.26499.072420191717

-rw-r--r-- 1 root    root     864 Jul 24 17:18 session.root.26499.072420191717.timing

-rw-rw-r-- 1 tanisha tanisha  555 Jul 24 17:20 session.tanisha.26545.072420191718

-rw-rw-r-- 1 tanisha tanisha  528 Jul 24 17:20 session.tanisha.26545.072420191718.timing

是的,所有用户的终端会话操作都已成功注册,并且已存储在/var/log/session目录下。

如何使用script命令在Linux上查看记录的会话

我可以说一切都按预期进行,没有任何问题,因为它创建了所有用户的文件。

现在,是时候一个接一个地查看用户记录的所有会话数据,以确保脚本捕获了我们已实现的所有内容。

查找daygeek用户的会话输出。

# more session.daygeek.26452.072420191715

Script started on Mon 24 Jul 2019 05:15:13 PM EDT

[daygeek@vps1 ~]$ uname -a

Linux vps1.daygeek.com 2.6.32-754.el6.x86_64 #1 SMP Tue Jun 19 21:26:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

[daygeek@vps1 ~]$ arch

x86_64

[daygeek@vps1 ~]$ hostname -I

66.70.189.137

[daygeek@vps1 ~]$ exit

exit

查找magi用户的会话输出。

# more session.magi.26394.072420191713

Script started on Mon 24 Jul 2019 05:13:10 PM EDT

[magi@vps1 ~]$ w

17:13:13 up 3 days,  7:17,  4 users,  load average: 0.00, 0.00, 0.00

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     pts/0    103.5.134.167    17:00    4:13   0.29s  0.24s top -c

root     pts/1    103.5.134.167    17:09   27.00s  0.01s  0.01s -bash

magi     pts/2    103.5.134.167    17:13    0.00s  0.00s  0.00s -bash

magi     pts/3    -                17:13    0.00s  0.00s  0.00s w

[magi@vps1 ~]$ date

Mon Jul 24 17:13:24 EDT 2019

[magi@vps1 ~]$ whoami

magi

[magi@vps1 ~]$ cat /etc/centos-release

CentOS release 6.10 (Final)

[magi@vps1 ~]$ exit

exit

查找tanisha用户的会话输出。

# more session.tanisha.26545.072420191718

Script started on Mon 24 Jul 2019 05:18:49 PM EDT

[tanisha@vps1 ~]$ rpm -q kernel

kernel-2.6.32-754.el6.x86_64

[tanisha@vps1 ~]$ history

1  rpm -q kernel

2  history

[tanisha@vps1 ~]$ last reboot

reboot   system boot  2.6.32-696.6.3.e Fri Jul 21 09:55 - 17:20 (3+07:24)

wtmp begins Fri Jul 21 09:54:02 2019

[tanisha@vps1 ~]$ exit

exit

查找root用户的会话输出。

# more session.root.26499.072420191717

Script started on Mon 24 Jul 2019 05:17:41 PM EDT

[root@vps1 ~]# whoami

root

[root@vps1 ~]# pwd

/root

[root@vps1 ~]# host 2daygeek.com

2daygeek.com has address 104.27.157.177

2daygeek.com has address 104.27.156.177

2daygeek.com has IPv6 address 2400:cb00:2048:1::681b:9db1

2daygeek.com has IPv6 address 2400:cb00:2048:1::681b:9cb1

2daygeek.com mail is handled by 0 dc-7dba4d3ea8cd.2daygeek.com.

[root@vps1 ~]# host magesh.co.in

magesh.co.in has address 103.212.204.46

magesh.co.in mail is handled by 10 e46f668a62df45920a71fc97ebe479.pamx1.hotmail.com.

[root@vps1 ~]# exit

exit

以上所有输出清楚地表明,所有内容均已记录,没有任何问题。

如何重播通过scriptreplay命令记录的会话

您可以在scriptreplay命令的帮助下重播记录的会话,因为脚本也已捕获了定时文件。这样做,如下所述运行文件。

# scriptreplay --timing=session.daygeek.26452.072420191715.timing session.daygeek.26452.072420191715

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任

linux 当前活动用户,如何在Linux上自动记录所有用户的终端会话活动相关推荐

  1. linux查看图像大小_如何在Linux上调整一批图像的大小?

    linux查看图像大小 Resizing images on Linux with gThumb is easy. However, I have a batch of images inside a ...

  2. 如何在 Mac 上启用 root 用户或更改 root 密码

    如何在 Mac 上启用 root 用户或更改 root 密码 完成某些任务需要系统更多区域的访问权限,Mac 管理员可以使用 root 用户帐户来完成这些任务. 名为"root"的 ...

  3. linux更换steam目录,如何在Linux上备份Steam游戏数据 | MOS86

    无论您是需要重新安装Linux操作系统,还是只是想确保游戏进度不会丢失数据,备份存储游戏数据就是答案. 您可以制作完整的磁盘映像,也可以使用专用工具. 无论出于什么原因备份游戏数据,您都可以选择以下三 ...

  4. linux 蓝牙发送文件,如何在Ubuntu上使用蓝牙进行文件传输

    即使现代文件传输协议和设备的出现和广泛使用,蓝牙仍然是一种可信任的方法,用于与系统之间的文件传输和设备连接.您的系统可能装有内置蓝牙堆栈,也可能没有.但是,您可以使用外部蓝牙加密狗来达到目标​​. 本 ...

  5. 制作ghost的linux系统安装方法,技术|如何在Linux平台上安装Ghost博客平台

    Ghost是一个相对较新的博客发布平台,它开始于众筹平台kickstarter上一个£25,000英镑的众筹项目.尽管WordPress依然是网上主流的博客工具,但它现在已然是一个拥有众多第三方开发功 ...

  6. linux+usb刻录,如何在Ubuntu上安装Etcher-开源USB刻录机工具

    如何在Ubuntu上安装Etcher-开源USB刻录机工具 Mark Do 2017年5月20日 暂无评论 阅读 4,988 次 Etcher是一款跨平台的USB镜像文件写入工具,在Windows.m ...

  7. linux检测软件温度,如何在Linux系统上监测系统温度?(亲测可用)

    转载自:http://os.51cto.com/art/201311/417208.htm 按理说,在大多数情况下,你用不着为电脑的运行温度而操心.除了制造瑕疵外,电脑硬件在设计时确保温度不会超过最高 ...

  8. linux下安装sbt_如何在Linux上安装SBT

    linux下安装sbt 介绍 (Introduction) Hi! I am Sanjula, and in this guide I hope to teach you how to install ...

  9. linux管理用户组,技术|如何在 Linux 系统中通过用户组来管理用户

    本教程可以了解如何通过用户组和访问控制表(ACL)来管理用户. 当你需要管理一台容纳多个用户的 Linux 机器时,比起一些基本的用户管理工具所提供的方法,有时候你需要对这些用户采取更多的用户权限管理 ...

最新文章

  1. 朴素贝叶斯python实现预测_Python实现朴素贝叶斯分类器的方法详解
  2. 解决“SSL handshake failed“问题
  3. Android开发之SpannableString具体解释
  4. Android预优化那些事
  5. 为什么大部分程序员看不起PHP这门语言?
  6. 王义成:阿里云Redis服务助力游戏行业发展
  7. php设计模式-工厂设计模式
  8. html table渐变色,Safari浏览器中的渐变问题(给tr添加的渐变效果作用在了td上)...
  9. html字符串替换src,替换html字符串中img标签src的值.
  10. CACTI 仙人掌监控平台
  11. php uid gid,用户信息,函数介绍,PHP开源CMS系统帮助文档
  12. 面试官都会问些什么问题?
  13. 富有哲理的10则故事(必读经典)
  14. visual studio工程文件介绍
  15. win10电脑显示无法自动修复此计算机,win10正式版提示自动修复无法修复你的电脑解决教程...
  16. 手把手教你搭建Spring Boot项目
  17. MTK平台 在lk阶段,读取IMEI号
  18. MIRO 仅当操作基于收货的 IV 时输入货物收据
  19. 液压机的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  20. 快手小程序、网红探店小程序、多商户版(裂变分销+商家核验+集字卡片活动+积分抵扣)

热门文章

  1. IE下的拖拽Drag事件和示例
  2. 在MATLAB中使用tensorflow
  3. 操作系统的初始化流程简图
  4. matlab强制数据类型转换
  5. 在Qt中使用C++代码创建界面
  6. 论文笔记:ShuffleNet v1
  7. spark如何防止内存溢出_Spark 理论基石 —— RDD
  8. Zookeeper源码分析(二) ----- zookeeper日志
  9. 关于java的public,private,protect,以及默认权限的理解
  10. 虚拟主机IIS防范入侵常见问答