欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

通过登陆IP记录Linux所有用户登录所操作日志的方法

程序员文章站 2022-03-16 16:32:03
对于Linux用户操作记录一般通过命令history来查看历史记录,但是如果在由于误操作而删除了重要的数据的情况下,history命令就不会有什么作用了。那么依然要存有历史操作记录应该如何... 12-10-13...
对于linux用户操作记录一般通过命令history来查看历史记录,但是如果在由于误操作而删除了重要的数据的情况下,history命令就不会有什么作用了。那么依然要存有历史操作记录应该如何来实现呢?

其实我们可以通过登陆ip地址来记录所有用户登录所操作的历史操作!具体操作就是在/etc/profile配置文件的末尾加入以下脚本代码来实现:

复制代码
代码如下:

[root@server ~]# cat >>/etc/profile<< eof
>
> 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 /tmp/history ]; then
> mkdir /tmp/history
> chmod 777 /tmp/history
> fi
>
> if [ ! -d /tmp/history/${logname} ]; then
> mkdir /tmp/history/${logname}
> chmod 300 /tmp/history/${logname}
> fi
>
> export histsize=4096
>
> dt=`date +"%y-%m-%d_%h:%m:%s"`
>
> export histfile="/tmp/history/${logname}/${user}@${user_ip}_history.$dt"
>
> chmod 600 /tmp/history/${logname}/*history* 2>/dev/null
>
> eof
[root@server ~]# source /etc/profile
[root@server ~]# logout
# 此时需要退出系统再重新登录,在/tmp/history/目录下才有记录

通过上面的脚本代码可以看出来,在系统的/tmp下就新建了个history目录(这个目录可以自定义),在目录中记录了所有的登陆过系统的用户和ip地址,这也是监测系统安全的方法之一。在进行一系列的操作之后,我们进入/tmp/history目录查看历史记录:

复制代码
代码如下:

[root@server ~]# cd /tmp
[root@server tmp]# ll
总计 24
drwx------ 2 root root 4096 2012-10-11 gconfd-root
drwxrwxrwx 3 root root 4096 2012-10-11 history
drwx------ 2 root root 4096 08-11 01:11 keyring-ki8ioj
srwxr-xr-x 1 root root 0 2012-10-11 mapping-root
srw------- 1 root root 0 2012-10-11 scim-panel-socket:0-root
drwx------ 2 root root 4096 2012-10-11 ssh-jppigl3182
drwx------ 2 root root 4096 10-10 21:16 ssh-kdmptr3350
[root@server tmp]# cd history/
[root@server history]# ll
总计 4
d-wx------ 2 root root 4096 10-10 21:16 root
[root@server history]# cd root/
[root@server root]# ll
总计 4
-rw------- 1 root root 37 10-10 21:16 root@192.168.1.96_history.2012-10-10_21:16:42