Linux记录用户操作命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux记录用户操作命令相关的知识,希望对你有一定的参考价值。

参考技术A

Linux系统会记录用户登陆系统后执行过的命令;在一定情况下,可以帮助对系统的管理。

配置参数:
HISTTIMEFORMAT = \'%F %T \' #日期格式
HISTSIZE = 4000 #保留日志数量
HISTFILE = /var/history #存储文件

缺点:
1、默认的记录用户命令服务,没有记录命令执行的时间。
2、没有记录用户登陆的IP
3、同一个用户的不同会话,记录到同一个文件中;无法根据不同会话分别记录。

优化:
1、每次用户登陆后,根据用户账号、登陆IP和登陆时间确定存储文件名。这样除非同一个用户,同一个IP,同一时刻登陆服务器才会记录到同一个文件中。
2、将上述设置,配置为用户登陆后,自动执行
3、将日志写入一个隐藏目录中。

脚本内容:


将脚本放在/etc/profile.d/history.sh中。

Linux下记录所有用户的登录和操作日志

在Linux下记录所有用户的登录和操作日志

 

一般我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是哪个用户登录操作的,也不能记录详细的操作时间,且不完整;所以误操作而造成重要的数据丢失,就很难查到是谁操作的。
 
在这里我们通过脚本代码来实现记录所以用户的登录操作日志:
 
编辑/etc/profile文件,在文件末尾加入下面代码:
[root@telecom225 /]# vi /etc/profile

history
USER=`whoami`
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 /var/log/history ]; then
mkdir /var/log/history
chmod 777 /var/log/history
fi
if [ ! -d /var/log/history/${LOGNAME} ]; then
mkdir /var/log/history/${LOGNAME}
chmod 300 /var/log/history/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date +"%Y%m%d_%H:%M:%S"`
export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null

注释: /var/log/history这是记录日志的存放位置,可以自定义。
 
在/var/log/history下会以每个用户为名新建一个文件夹,
[root@telecom225 /]# cd /var/log/history/

[root@telecom225 history]# ll
total 20
d-wx------ 2 test dennishan 4096 Jul 4 12:06 test
d-wx------ 2 jerryhe jerryhe 4096 Jul 4 14:12 jerryhe

每次用户退出后都会产生以用户名、登录IP、时间的文件,里面包含此用户本次的所以操作

[root@telecom225 history]# cd jerryhe/
[root@telecom225 jerryhe]# ls
jerryhe@180.173.188.252_20130626_14:59:51
jerryhe@180.173.188.252_20130628_14:40:26
jerryhe@180.173.188.252_20130703_09:44:21
jerryhe@180.173.188.252_20130703_11:18:40
jerryhe@180.173.188.252_20130703_11:21:11
jerryhe@180.173.188.252_20130703_14:21:49
jerryhe@180.173.188.252_20130703_14:30:48
jerryhe@180.173.188.252_20130704_13:37:19

来源:https://www.cnblogs.com/nulige/p/7607464.html

以上是关于Linux记录用户操作命令的主要内容,如果未能解决你的问题,请参考以下文章

linux如何查看用户所有的历史操作记录

Linux下查看/管理当前登录用户及用户操作历史记录

如何查看Linux中各个用户的历史操作命令

Linux下查看/管理当前登录用户及用户操作历史记录

linux 实时记录用户执行的命令

Linux下记录所有用户的登录和操作日志