按时按登录IP记录Linux所有用户操作日志的方法(附脚本)
标签: IP记录,Linux,总结,按时,方法,日志,用户操作,脚本.PS:Linux用户操作记录一般通过命令history来查看历史记录,但是如果因为某人误操作了删除了重要的数据,这种情况下history命令就不会有什么作用了。
以下方法可以实现通过记录登陆IP地址和所有用户登录所操作的日志记录!

在/etc/profile配置文件的末尾加入以下脚本代码就可以实现,下面脚本是我网上找来的,原作者不知。但原脚本的时间变量有错误,不能记录时间,本人测试发现并检查修正:

#vim /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/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_IP} history.$DT"
chmod 600 /tmp/history/${LOGNAME}/*history* 2>/dev/null

 

通过上面的代码可以看出来,在系统的/tmp新建个history目录(这个目录可以自定义),在目录中记录了所有的登陆过系统的用户和IP地址,这也是监测系统安全的方法之一


suse系统默认终端显示颜色
#echo $PS1
export PS1='\[\]\h:\w # \[\]'

现在对上边的PS1变量进行颜色的设置,即在需要更改颜色的地方插入颜色值,比如我们让用户名以红色显示的命令应该是:

export PS1='\[\033[1;31;40m\]\u@\h:\w\$ ' 

 为此,我们需要在@符号前面插入新的颜色值以防止整个信息项以红色显示,修改后的PS1变量为:
 export PS1='\[\033[1;31;40m\]\u\[\033[00m\]@\h:\w\$ '


我们可以让用户名带下划线,路径以白色显示,并且美元符号以绿色显示,命令则以蓝色显示:
export PS1='\[\033[4;31;40m\]\u\[\033[00m\]@\h:\[\033[37;40m\]\w\[\033[32;40m\]\$ \[\033[34;40m\]'

查看当前终端颜色编码
env | grep PS1