Linux:设置系统history相关变量、查看所有登录用户的操作历史命令【所有用户的history历史记录】【root用户无法得到其它用户histotry历史】

一、设置历史记录的时间

# vi /etc/profile    //在文件末尾添加以下内容,然后保存退出重新登陆即可
HISTTIMEFORMAT='%F %T '     //注意有个空格,为了显示时日期与命令之间有空格分割。
HISTSIZE="3000"    //默认保留1000条。
# source /etc/profile

 重新查看:

root@iZm5e9phbzdxx0lysrv9t2Z:~# history
    1  2022-11-12 19:20:04 history
    2  2022-11-12 19:22:18 vi /etc/profile
    3  2022-11-12 19:23:33 source /etc/profile
    4  2022-11-12 19:23:40 history
root@iZm5e9phbzdxx0lysrv9t2Z:~# 

二、使用 HISTSIZE 控制历史命令记录的总行数

将下面两行内容追加到.bash_profile文件并重新登陆,history命令的记录数将变成3000条。

# vi ~/.bash_profile
HISTSIZE=3000
HISTFILESIZE=3000

HISTFILESIZE 定义了在 .bash_history 中保存命令的记录总数.
HISTSIZE 定义了 history 命令输出的记录数.
如果想禁用history, 可以设置HISTSIZE=0:
修改.bash_profile,只对当前用户的history有效,如果修改/etc/profile则对所有用户用效!

三、清空历史命令(history)

有时候发现上下键出现太多没有用的命令或者打错的命令,可以使用以下两种方法清空命令

1、history -c

该命令可以清空本次登入的所有输出命令,但不清空.bash_history文件,所以下次登陆后,旧命令还将出现,历史命令是存在于当前用户根目录下的./bash_history文件。

2、echo > $HOME/.bash_history

每个用户根目录下都有一个.bash_history文件用于保存历史命令,当每次注销时,本次登陆所执行的命令将被写入该文件。所以可以清空该文件,下次登陆后上次保存的命令将消失,清空效果将在下次登陆生效。

四、查看所有登录用户的操作历史命令

在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台服务器多人登陆,一天因为某人误操作了删除了重要的数据。这时候通过查看历史记录(命令:history)是没有什么意义了(因为history只针对登录用户下执行有效,即使root用户也无法得到其它用户histotry历史)。那有没有什么办法实现通过记录登陆后的IP地址和某用户名所操作的历史记录呢


通过在/etc/profile里面加入以下代码就可以实现:

USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /opt/loginlog ]
then
mkdir -p /opt/loginlog
chmod 777 /opt/loginlog
fi
if [ ! -d /opt/loginlog/${LOGNAME} ]
then
mkdir /opt/loginlog/${LOGNAME}
chmod 300 /opt/loginlog/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date "+%Y-%m-%d_%H:%M:%S"`
export HISTFILE="/opt/loginlog/${LOGNAME}/${USER_IP}_loginlog.$DT"
chmod 600 /opt/loginlog/${LOGNAME}/*loginlog* 2>/dev/null

source 使脚本生效

source /etc/profile

上面脚本在系统的/opt新建个loginlog目录,记录所有登陆过系统的用户和IP地址(文件名),每当用户登录/退出会创建相应的文件,该文件保存这段用户登录时期内操作历史,可以用这个方法来监测系统的安全性。

 

 就可以看到登录用户操作的历史命令了

Linux 查看所有登录用户的操作历史命令 - 简书

设置linux系统history相关变量,命令时间、保存history条数,多session共享history_51CTO博客_linux系统history命令保存条数

https://malizhi.blog.csdn.net/article/details/82947699 

Linux不留历史痕迹-清除历史命令_Rocket-Luo的博客-CSDN博客_linux不记录历史命令 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值