讲师中心 微信公众号
AI工具推荐 视频效率加速

如何配置Linux系统自动记录所有TTY终端的交互式操作日志

老宇同学_3186

老宇同学_3186

发布时间:2026-04-21 13:47:25

|

203人浏览过

|

来源于php中文网

原创

Linux记录TTY操作日志有三种推荐方式:1. 用script命令在/etc/profile中注入静默会话记录;2. 用pty+Python脚本实现屏幕级全字节流审计;3. 用rsyslog+PROMPT_COMMAND补充精准命令元数据日志,三者可组合使用。

如何配置linux系统自动记录所有tty终端的交互式操作日志

要让 Linux 系统自动记录所有 TTY 终端(包括本地控制台、SSH 登录、虚拟终端等)的交互式操作日志,核心思路是:在用户 shell 启动时注入记录机制,并确保覆盖登录、执行、退出全过程。不能只依赖 history,因为它只存命令不存输出;也不能只靠手动运行 script,它无法全自动触发。以下是最实用、可落地的三类配置方式,按推荐优先级排序。

用 script 命令实现登录即录(轻量可靠)

这是最成熟、无需额外依赖、兼容性最好的方案。关键在于把 script 放进用户 shell 初始化文件中,且避免递归调用。

  • 编辑 /etc/profile 或 /etc/bash.bashrc(对所有 bash 用户生效)
  • 添加如下判断逻辑(防止重复嵌套启动):
if [ -z "$SCRIPT_LOGGING" ] && [ -t 0 ]; then
  export SCRIPT_LOGGING=1
  LOG_DIR="/var/log/tty_sessions"
  mkdir -p "$LOG_DIR"
  SESSION_FILE="${LOG_DIR}/$(date +%Y%m%d_%H%M%S)_$(whoami)_$(tty | sed 's|/dev/||').log"
  script -q -a "$SESSION_FILE"
  exit
fi

说明:-q 静默启动不提示,-a 追加写入(避免覆盖),exit 是关键——它让原始 shell 退出,由 script 子 shell 接管会话。所有输入输出都会被完整捕获为纯文本,含控制字符(可用 col -b 清理后阅读)。

用 pty + Python 脚本审计全链路(高保真)

适合需要记录“屏幕级”输出(如 htop、vim 分屏、颜色、光标移动)的审计场景。本质是用伪终端(pty)劫持用户 shell,全程重定向 I/O 到日志文件。

  • 将知识库中的 /data_audit/.pty.py 脚本保存到系统路径(如 /usr/local/bin/audit_pty.py),并确保可执行
  • 在 /etc/profile 中加入(同样需防递归):
if [ -z "$AUDIT_PTY" ] && [ -t 0 ] && [ "$(whoami)" != "root" ]; then
  export AUDIT_PTY=1
  LOG_DIR="/var/log/audit/$(whoami)"
  mkdir -p "$LOG_DIR"
  LOG_FILE="${LOG_DIR}/$(date +%Y%m%d_%H%M%S)_$(tty|sed 's|/dev/||').log"
  /usr/bin/python3 /usr/local/bin/audit_pty.py -a "$LOG_FILE"
  exit
fi

注意:该脚本会记录从登录到登出的完整字节流,包括密码输入(显示为星号或空白),但不解析密码明文;日志文件权限应设为 600,仅 root 可读。

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载

用 rsyslog + PROMPT_COMMAND 补充命令级日志(精准可查)

作为前两种方案的补充,它不记录输出,但能精确打点每条命令的执行时间、用户、IP、TTY 设备,便于事后快速检索和关联分析。

  • 在 /etc/profile 中设置:
export HISTTIMEFORMAT="%Y-%m-%d %T "
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.info "$(whoami) [$(tty)] $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//") [$RETRN_VAL]"'
  • 配置 /etc/rsyslog.conf,添加:
local6.* /var/log/cmd.log
# 可选:转发到远程日志服务器
local6.* @192.168.10.5:514

效果:每次回车执行命令后,rsyslog 就会写入一行类似 Apr 16 17:22:03 host user1[pts/2] ls -la [0] 的日志,含返回值,支持按时间、用户、错误码过滤。

注意事项与加固建议

无论采用哪种方式,都必须同步做以下几件事:

  • 日志目录权限严格限制:如 /var/log/tty_sessions 应属 root:root,权限 700;普通用户不可写不可列目录
  • 禁止用户修改或绕过配置:将关键脚本(如 .pty.py)设为 chown root:root & chmod 500,防止篡改
  • 定期轮转与清理:用 logrotate 配置自动压缩归档,避免磁盘占满;例如每日切割、保留 90 天
  • SSH 场景额外确认:确保 /etc/ssh/sshd_config 中未禁用 PermitUserEnvironment yes(若用环境变量触发),但更推荐统一走 /etc/profile

三种方法可以组合使用:用 script 做主录(文本全量),用 rsyslog 做索引(命令元数据),再用 pty 在关键账号上启用高保真备份。不复杂但容易忽略细节。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

457

2023.08.15

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

920

2023.09.08

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2972

2023.09.19

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

996

2023.10.09

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

889

2023.10.17

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

454

2023.10.17

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2696

2023.10.18

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

5032

2023.10.20

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

0

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn