在LINUX上查询哪个用户从哪个IP登录,登录时间,执行了什么命令?
在/etc/profile里面加入以下代码
PS1="`whoami`@`hostname`:"'[$PWD]' history 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/login_data ] then mkdir /tmp/login_data chmod 777 /tmp/login_data fi if [ ! -d /tmp/login_data/${LOGNAME} ] then mkdir /tmp/login_data/${LOGNAME} chmod 300 /tmp/login_data/${LOGNAME} fi export HISTSIZE=4096 DT=`date "+%Y-%m-%d_%H:%M:%S"` export HISTFILE="/tmp/login_data/${LOGNAME}/${USER_IP} login_data.$DT" chmod 600 /tmp/login_data/${LOGNAME}/*login_data* 2>/dev/null
source /etc/profile 使脚本生效,退出用户,重新登录
上面脚本在系统的/tmp新建个login_data目录,记录所有登陆过系统的用户和IP地址(文件名),每当用户登录/退出会创建相应的文件,该文件保存这段用户登录时期内操作历史,可以用这个方法来监测系统的安全性。
核心是 history 和 who 这个两个命令
参考文章 : 《Linux下查看/管理当前登录用户及用户操作历史记录》