转自:https://zhuanlan.zhihu.com/p/524921170

危险操作一追到底--Linux的历史记录

为了更好的自己
 
 

概述

在Linux下使用history命令可以查看用户所有的历史操作记录,默认记录在用户目录下.bash_history文件中。如果黑客入侵后会删除该文件销毁痕迹。这就需要合理的备份.bash_history文件

配置方法

1.history命令只是单纯的记录命令,并没有记录时间,所以要把格式做下修改,在/etc/bashrc文件中添加

HISTFILESIZE=4000   #保存命令总数
HISTSIZE=400 #history命令输出总数
HISTTIMEFORMAT='%F %T ' #时间格式,注意最后有空格
export HISTTIMEFORMAT

下面使用脚本来详细记录历史命令。可以将下面的代码加到/etc/profile中

#save history
IP=$(who -u am i|awk '{print $NF}'|sed -e 's/[()]//g')
HISTDIR=/opt/.history
if [ -z $IP ];then
IP=$(hostname)
fi
if [ ! -d $HISTDIR ];then
mkdir -p $HISTDIR
chmod 777 $HISTDIR
fi
if [ ! -d $HISTDIR/$LOGNAME ];then
mkdir -p $HISTDIR/$LOGNAME
chmod 300 $HISTDIR/$LOGNAME
fi
export HISTSIZE=4000
DateTime=$(date +%F_%H%M%S)
export HISTFILE="$HISTDIR/$LOGNAME/$IP.histroy.$DateTime"
HISTTIMEFORMAT='%F %T '
chmod 600 $HISTDIR/$LOGNAME/*.history.* 2>/dev/null

这段代码将每个用户本次登陆主机的shell命令执行历史以文件的形式保存下来,每个用户一个文件夹。

发布于 2022-06-06 15:26

[转载]危险操作一追到底--Linux的历史记录的更多相关文章

  1. 使用技术手段限制DBA的危险操作—Oracle Database Vault

    概述 众所周知,在业务高峰期,某些针对Oracle数据库的操作具有很高的风险,比如修改表结构.修改实例参数等等,如果没有充分评估和了解这些操作所带来的影响,这些操作很可能会导致故障,轻则导致应用错误, ...

  2. Linux显示历史记录

    Linux显示历史记录 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ history 1 uname -a 2 lsusb 3 df -h 4 ps -A 5 ...

  3. 转载 Python 操作 MySQL 的正确姿势 - 琉璃块

    Python 操作 MySQL 的正确姿势 收录待用,修改转载已取得腾讯云授权 作者 |邵建永 编辑 | 顾乡 使用Python进行MySQL的库主要有三个,Python-MySQL(更熟悉的名字可能 ...

  4. 从操作系统内核看设计模式--linux内核的facade模式

    linux的内核当中处处充满了设计模式,本文先讨论一下外观模式.外观模式就是将客户和子系统解耦,为客户将复杂的子系统进行封装,从而使得客户可以使用简单易用的接口.  众所周知,linux和unix是十 ...

  5. python pdb 转载:https://www.linuxidc.com/Linux/2017-11/148329.htm

    最近在为一个监控系统开发agent,需要支持Linux.FreeBSD及Windows等操作系统.复杂的线上环境,带来了一系列诡异的问题,尽管代码上线前在为数不少的测试机器验证过. Python程序吐 ...

  6. [转载]PV操作简单理解

      原文链接:http://blog.csdn.net/liushuijinger/article/details/7586656 进程通常分为就绪.运行和阻塞三个工作状态.三种状态在某些条件下可以转 ...

  7. (转载)如何借助KeePassX在Linux上管理多个密码

    转自:http://netsecurity.51cto.com/art/201311/417764.htm 如今,基于密码的身份验证在网上非常普遍,结果你恐怕数不清自己到底在使用多少个密码.实际上,据 ...

  8. 【转载】干货再次来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载八)用命令实现批量添加用户

    Windows添加用户需要至少5个界面,而Linux一条命令就搞定了,这是不是高效人士办公第一法则呢.本文不给你一堆参数和选项,不让你见识教条主义,只给你最实用的代码. 想每天能听到小妞的语音播报,想 ...

  9. iterm快捷键及操作技巧(附Linux快捷键)

    标签操作 新建标签:command + t 关闭标签:command + w 切换标签:command + 数字 command + 左右方向键 切换全屏:command + enter 查找:com ...

  10. jmeter压测、操作数据库、分布式linux下运行、webservice接口测试、charles抓包

    一.jmeter压测 在线程组中设置好,然后添加http请求,t添加聚合报告查看压力测试结果,如图: 一般压测时间10-15分钟,如果是稳定性测试,一般n*12小时,这些并发用户一直在请求. tps: ...

随机推荐

  1. 秒懂 Golang 中的 条件变量(sync.Cond)

    本篇文章面向的读者: 已经基本掌握Go中的 协程(goroutine),通道(channel),互斥锁(sync.Mutex),读写锁(sync.RWMutex) 这些知识.如果对这些还不太懂,可以先 ...

  2. STL map容器常用API

    map容器:键值和实值是分开的,排序规则按照键值排序 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<map& ...

  3. 01.Java面试都问啥?

    大家好,我是王有志.好久不见,不过这次没有休假,而是搞了个"大"工程,花了点时间自学Python,然后写了"玩具爬虫",爬某准网的面经数据,为来年的" ...

  4. 01-Sed简介

    1 Sed简介 Sed(Stream EDitor)为Uninx系统上提供将编辑工作自动化的编辑器,使用者无需直接编辑数据.使用者可以利用Sed所提供的20多种不同的函数,进行不同的编辑动作. Sed ...

  5. git操作失误,提交代码因为网络问题没有成功,然后操作时候点错按钮导致代码全部没有了,也没用备份,如何解决

    最好的提交代码办法, 1.先创建一个空文件夹, 2.然后创建一个在线仓库 3. git remote add origin '仓库地址' 4.查看远程仓库 git remote remove orig ...

  6. Springboot跨域配置的坑

    部分时间需要加上crossOrigin

  7. 数据结构-详解优先队列的二叉堆(最大堆)原理、实现和应用-C和Python

    一.堆的基础 1.1 优先队列和堆 优先队列(Priority Queue):特殊的"队列",取出元素顺序是按元素优先权(关键字)大小,而非元素进入队列的先后顺序. 若采用数组或链 ...

  8. C语言定制DEBUG信息

    C语言定制DEBUG信息 背景与问题 在日常编写程序中,我们经常需要输出一些调试信息帮助我们 DEBUG 或者更好的编程,通常我们的做法是这样的: 在需要的地方直接printf(...)输出有用的信息 ...

  9. Redis 异步客户端选型及落地实践

    作者:京东科技 王晨 Redis异步客户端选型及落地实践 可视化服务编排系统是能够通过线上可视化拖拽.配置的方式完成对接口的编排,可在线完成服务的调试.测试,实现业务需求的交付,详细内容可参考:htt ...

  10. BIGO 如何做到夜间同时运行 2.4K 个工作流实例?

    点亮 ️ Star · 照亮开源之路 GitHub:https://github.com/apache/dolphinscheduler   ​ 精彩回顾 近期,BIGO 的大数据研发工程师许名勇在社 ...