测试环境 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及操作记录;

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





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

  一、查看及管理当前登录用户