Linux 记录所有用户的操作记录

随着时代的发展,我们生活中了解计算机的越来越多,黑客也越来越多;为了安全起见,我们需要记录所用户的登录及操作日志;我们需要清楚服务器上每个用户登录后都做了哪些操作,我们需要记录下每个用户的操作命令。

下面的内容设置可以实现在Linux下所有用户,不管是远程还是本地登陆,在本机的所有操作都会记录下来,并生成包含“用户/IP/时间/操作指令”的文件存放在指定位置。

1、添加以下信息到/etc/profile文件里

################## 记录信息开始 ####################
#history
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"
USER_IP=`who -u am i 2>/dev/null| awk ‘{print $NF}‘|sed -e ‘s/[()]//g‘`
HISTDIR=/var/log/.hist   ###日志存放路径
if [ -z $USER_IP  ]
then
  USER_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=4096
DT=`date +%Y%m%d_%H%M%S`
export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.hist.$DT"   ###日志生成格式,保持默认
chmod 600 $HISTDIR/${LOGNAME}/*.hist* 2>/dev/null
########################## 结束 ############################

2、使用配置生效

# source /etc/profile

3、退出重启登录后查看生成的日志信息

[[email protected] ~]# cd /var/log/.hist/root/
[[email protected] root]# ls
192.168.206.1.hist.20170604_085436
[[email protected] root]# cat 192.168.206.1.hist.20170604_085436 
#1496537687
cd /var/log/.hist/
#1496537688
ls
#1496537690
cd root/
#1496537691
ls
#1496537692
ll
#1496537695
exit

4、小技巧:正常格式查看日志信息

[[email protected] root]# export HISTFILE=/var/log/.hist/root/192.168.206.1.hist.20170604_085436
[[email protected] root]# history 
    1  [2017.06.04 08:55:04]cd /var/log/.hist/root/
    2  [2017.06.04 08:55:05]ls
    3  [2017.06.04 08:55:10]cat 192.168.206.1.hist.20170604_085436 
    4  [2017.06.04 08:55:31]#history

至此,所有操作就已经完成了。如有问题请联系:DB[email protected]

时间: 2024-09-29 03:16:14

Linux 记录所有用户的操作记录的相关文章

记录每个用户的操作记录

linux系统环境下,不管是root用户还是其他的用户只有登录系统后的操作都可以通过命令history查看历史记录. 假如一台服务器有多人登录,一天因为某人误删了重要的数据 这时通过history是没有什么意义的,那有没有办法实现通过记录登录后的ip地址和登录的用户名分类记录操作的历史记录呢? #vim /etc/profile    配置文件里添加如下代码 #PS1="`whoami`@`hostname`:"'[$PWD]' history USER_IP=`who -u am i

linux下监控用户的操作记录

想知道用户登陆系统后都操作了什么,怎么办? 别急,linux下有一个script工具,专门记录终端会话中所有输入输出结果,并存放到指定文件中. 先看看怎么录制吧! 1.创建日志存放目录 # mkdir /opt/operation_log # chmod 777 -R /opt/operation_log 2.设置用户登陆后自动录制 # vi /etc/profile   #末尾追加一下内容 if [ $UID -ge 500 ]; then    exec script -t 2>/opt/o

linux下sendmail邮件系统安装操作记录

电子邮件系统的组成: 1)邮件用户代理(Mail User Agent , MUA),MUA是一个邮件系统的客户端程序,它提供了阅读,发送和接受电子邮件的用户接口. 最常用的 MUA 有: linux 中的 mail , elm , pine 等. Windows 的 outlook , foxmail 等  2)邮件代理器( Mail Transfer Agent , MTA ) MTA 负责邮件的存储和转发( store and forward ). MTA 监视用户代理的请求,根据电子邮件

记录每个用户的操作并以邮件方式发送操作内容

#1.Mail partial configuration,set /etc/mail.rc #2.Below is the main configuration cat >>/etc/profile<<Share #Variables LAST_USER=`last -n 2 |awk 'NR==2{print $1}'` LOG_FILE_PATH="/tmp/Shared_Operation" LAST_FILE_LOG=`ls -tl ${LOG_FIL

记录Windows下文件操作记录

https://blog.csdn.net/huashuolin001/article/details/73863324 原文地址:https://www.cnblogs.com/sui84/p/12076429.html

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

1.起因 最近linux服务器上一些文件呗篡改,想追查已经查不到记录了,所以得想个办法记录下所有用户的操作记录. 一般大家通常会采用history来记录,但是history有个缺陷就是默认是1000行,当然你也可以vim /etc/profile将1000修改成1000000行,但是这只是比较笼统的做法,看不到详细的用户来源已经操作记录,比如来源ip地址.操作时间.操作用户等. 所以我们不得不自己写代码来实现这样的功能. 2.自动记录脚本 编写脚本如下: history USER=`whoami

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

一般我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是哪个用户登录操作的,也不能记录详细的操作时间,且不完整:所以误操作而造成重要的数据丢失,就很难查到是谁操作的. 在这里我们通过脚本代码来实现记录所以用户的登录操作日志: 编辑/etc/profile文件,在文件末尾加入下面代码: 首先加上一行,来记录实时的 export HISTTIMEFORMAT="%F %T `who am i|awk '{print $1}'` as `whoami` : " 实时的有缺

LINUX如何查看其他用户的操作

我们知道可以使用history命令,查看自己的操作记录,但如果你是root用户,如何查看其它用户的操作记录呢? 其实history命令只是把当前用户目录下的~/.bash_History文件内容列出来而已. 一般而言,history展示的操作记录是没有时间的,可以在/etc/bashrc文件中加入下列代码: HISTFILESIZE=2000 HISTSIZE=2000 HISTTIMEFORMAT=”%Y%m%d-%H%M%S: ” export HISTTIMEFORMAT 保存后退出,关闭

linux下监控用户操作记录的工具

linux下监控用户操作记录的工具: apt-get install bsdutils mkdir /opt/operation_log chmod 777 -R /opt/operation_log vi /etc/profile exec script -t 2> /opt/operation_log/$USER-$UID-date +%F-%T.data -a -q -f /opt/operation_log/$USER-$UID-date +%F-%T.log :wq source /e