怎么查看从哪个ip登陆linux做了哪些操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么查看从哪个ip登陆linux做了哪些操作相关的知识,希望对你有一定的参考价值。

需要在Linux系统下设置通过登陆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
#此时就在记录中可以查看到用户名和IP地址,对Linux系统操作的命令和时间。
参考技术A last 可以看登陆的信息 做了哪些可以看他当时使用哪个用户登陆了 然后进入那个用户下 history本回答被提问者和网友采纳 参考技术B who <-- 看到user 从哪IP上线
ps aux <-- 看user 执行哪些processes.

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


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



本文出自 “Elephant” 博客,请务必保留此出处http://zlyang.blog.51cto.com/1196234/1933865

以上是关于怎么查看从哪个ip登陆linux做了哪些操作的主要内容,如果未能解决你的问题,请参考以下文章

怎么查看linux重启ssh进程失败原因

linux 如何查看各类用户尝试登陆的时间,ip地址信息等

LINUX服务器--所有用户登陆操作命令审计

linux 查询今天服务器登录历史(查看今天的服务器有谁登陆过)

Oracle 查询用户做了哪些操作

Xshell怎样登陆本地虚拟机