您的位置:首页 > 运维架构 > Shell

shell脚本自动记录登陆后的IP地址和某用户名所操作的历史记录

2013-07-22 18:13 489 查看
标题: 在/etc/profile中写一个shell脚本来记录登陆后的IP地址和某用户名所操作的历史记录!!!

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/ruige ]
then
mkdir /tmp/ruige
chmod 777 /tmp/ruige
fi
if [ ! -d /tmp/ruige/${LOGNAME} ]
then
mkdir /tmp/ruige/${LOGNAME}
chmod 300 /tmp/ruige/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date '+%Y:%m:%d %r'`
export HISTFILE="/tmp/ruige/${LOGNAME}/${USER_IP} ruige.$DT"
chmod 600 /tmp/ruige/${LOGNAME}/*ruige* 2>/dev/null


会在系统的/tmp新建个ruige目录,在目录中记录了所有的登陆过系统的用户和IP地址,还有历史命令!我们还可以用这个方法来监测系统的安全性。

注意:最好再给ruige这个目录建议你加个t位!!

chmod o+t ruige 或者chmod o+t ruige

补充知识点:

一:linux系统中who am i 和whoami的区别!

  who am i 显示的是实际用户ID即用户登陆的时候的用户ID!!

  whoami 显示的是有效用户ID.!!!




  但在大多数情况下,实际用户ID和有效用户ID是一致的。
  如

  login:root
  Pssword:

  $who am i

  root pts/0 2007-08-16 13:16 (:0.0)

  $whoami

  root
  当切换用户后:

  su tongrui

  #who am i

  root pts/0 007-08-16 13:16 (:0.0)

  #whoami

  tongrui
  也可以说who am i 显示的是切换用户前的实际登陆的用户ID,whoami是切换后的有效的用户ID,此时此终端具有切换后用户的访问权限,如本文中切换后则具有超级用户的访问权限。
who am i 和whoami有何区别?
首先要说明uid和euid(effective user id)的区别。uid就是你login的时候使用的id,而euid则是你当前的有效id。因为登录后我们可以使用su切换用户身份,所以uid和euid可能是不同的,程序在运行的时候一般看的都是euid,当然也有特出的,who am i就是一个。
举个例子:用户用root登陆,使用su变成tongrui,用who am i看到的是root,使用whoami命令看到的是tongrui。





who am i与whoami的区别:

1.whoami显示effective current username(即通过su username1之后,

显示的是username1);

2.who am i显示的是original username(即在使用su命令之前的username).

转载地址:/article/4130707.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: