Shell脚本自动记录登陆后 的IP地址和历史记录

今在linux运维趋势5月刊看到一则内容,通过shell脚本方式记录登录用户的时间、IP、操作内容,自认为非常有用,防止用户登陆后随意操作造成系统文件无法正常运行,现能过这段shell把其隐形记录在自己知道的目录下,以备自己查证和后期修复。现把自己的代码发布于下,供大家分享:

一、用vim 打开/etc/profile文件

二、在其它文件末加入以下内容:

PS1="`whoami`@`hostname`:"'[$PWD]' #(Linux系统提示符是用系统变量PS1来定义的)
history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` #(who -u                                                                                                   am i 会显示系统中登陆进来的用户及登陆从哪个IP登陆进来的,这里后面过滤了就取值一                                                                                                  个登陆进来的IP)
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/records ]
then
mkdir /tmp/records
chmod 777 /tmp/records
fi
if [ ! -d /tmp/records/${LOGNAME} ]
then
mkdir /tmp/records/${LOGNAME}
chmod 300 /tmp/records/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date '+%Y:%m:%d %r'`
export HISTFILE="/tmp/records/${LOGNAME}/${USER_IP} ${LOGNAME}.$DT"
chmod 600 /tmp/records/${LOGNAME}/*records* 2>/dev/null
bash

且指出原刊(5月linux运费趋势)中那段代码有一点小小的错误导致我在那测试了好半天也没能成功,就是在代码段末应加上“bash(粉色处)”要不然会使用程序出现无法编译,从而使大家的血汗得不到成果,呵呵,若有什么不对之处请大家指出,学习学习……

你可能感兴趣的:(linux,shell,记录,登陆,操作记录)