原创

linux-记录远程登录IP及操作记录

测试环境 RHEL 5.6 bash

linux 下可以用 w 来查看当前登录用户信息;如果是SSH登录,也可查看 $SSH_CLIENT 得到登录用户信息,但如果是FTP等方式,则无法得到需要的信息;

但用 w 有个问题,如果是同个用户登录,则有多条信息,如果区分是个问题;最后解决方法如下:

w | tail -n +3 | awk 'BEGIN {ip="local"}{if ($5=="0.00s" || $3 != "-") ip=$3 fi} END {print ip}'


linux 下可以用history 查看历史执行命令,但默认没有记录操作时间,也无法查看是哪个客户端执行的命令;

可以用/usr/bin/script 来记录用户操作;


结合以上两个功能,可以将如下命令加入到 /etc/profile里面,执行记录用户IP及操作记录日志文件目录:/var/log/script/

exec /usr/bin/script -a -f -q /var/log/script/$USER-`date +%Y%m%d%H%M`-`w | tail -n +3 | awk 'BEGIN {ip="local"}{if ($5=="0.00s" || $3 != "-") ip=$3 fi} END {print ip}'`.log

注:普通用户登录图形界面有问题,还没找出问题


或者,将如下命令加入到 /etc/profile最后一行,通过history命令查询:

 export HISTTIMEFORMAT="%F %T `who am i` "




正文到此结束
本文目录