BOoRFGOnZ 发表于 2009-6-23 10:23:11

zt LINUX用户登录后精确命令记录

主要功能:

  可以记录哪个ip和时间(精确到秒)作了哪些命令

  通过用户登录时候,重新定义HISTFILE

  HISTFILE文件名包含登录用户名,ip,登录时间(精确到秒)等

  这样即使相同的用户从不同ip、在不同的时间登录都会被记录

  可以记录每条命令的开始执行时间

  把下面的代码直接粘贴到/etc/profile后面就可以了

  #history

  export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"

  USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'

  HISTDIR=/var/log/.hist

  if [ -z $USER_IP ]

  then

  USER_IP=`hostname

  fi

  if [ ! -d $HISTDIR ]

  then

  mkdir -p $HISTDIR

  chmod 777 $HISTDIR

  fi

  if [ ! -d $HISTDIR/${LOGNAME} ]

  then

  mkdir -p $HISTDIR/${LOGNAME}

  chmod 300 $HISTDIR/${LOGNAME}

  fi

  export HISTSIZE=4096

  DT=`date +%Y%m%d_%H%M%S

  export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.hist.$DT"

  chmod 600 $HISTDIR/${LOGNAME}/*.hist* 2>/dev/null

  得到的结果,永久保存,每个用户的命令记录分目录保存

  # ls -l /var/log/.hist/root/

  -rw------- 1 root root 546 2006-05-26 10:00 218.82.245.54.hist.20060526_092458

  -rw------- 1 root root 243 2006-05-28 13:28 218.82.245.54.hist.20060528_114822

  -rw------- 1 root root 10 2006-05-28 12:18 218.82.245.54.hist.20060528_121605

  查看命令记录

  # export HISTFILE=/var/log/.hist/root/222.72.16.204.hist.20060608_152551

  # history

  1 vi /etc/profile

  2 cd /var/log/.hist

  3 ls -al

  4 cd sadmin

  5 ls -al

  6 more 58.35.169.51.hist.20060524_193219

  7 222.72.16.204.hist.20060622_143133

  8 more 222.72.16.204.hist.20060622_143133

  9 hist -f 222.72.16.204.hist.20060622_143133

  10 history -f 222.72.16.204.hist.20060622_143133

  11 history 222.72.16.204.hist.20060622_143133

  12 man histtory

  13 man history

  14 hist

  15 history

  16 ls

  17 export 222.72.16.204.hist.20060622_143133

  18 export HISTFILE=222.72.16.204.hist.20060608_152551

  19 history  主要功能:

  可以记录哪个ip和时间(精确到秒)作了哪些命令

  通过用户登录时候,重新定义HISTFILE

  HISTFILE文件名包含登录用户名,ip,登录时间(精确到秒)等

  这样即使相同的用户从不同ip、在不同的时间登录都会被记录

  可以记录每条命令的开始执行时间

  把下面的代码直接粘贴到/etc/profile后面就可以了

  #history

  export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"

  USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'

  HISTDIR=/var/log/.hist

  if [ -z $USER_IP ]

  then

  USER_IP=`hostname

  fi

  if [ ! -d $HISTDIR ]

  then

  mkdir -p $HISTDIR

  chmod 777 $HISTDIR

  fi

  if [ ! -d $HISTDIR/${LOGNAME} ]

  then

  mkdir -p $HISTDIR/${LOGNAME}

  chmod 300 $HISTDIR/${LOGNAME}

  fi

  export HISTSIZE=4096

  DT=`date +%Y%m%d_%H%M%S

  export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.hist.$DT"

  chmod 600 $HISTDIR/${LOGNAME}/*.hist* 2>/dev/null

  得到的结果,永久保存,每个用户的命令记录分目录保存

  # ls -l /var/log/.hist/root/

  -rw------- 1 root root 546 2006-05-26 10:00 218.82.245.54.hist.20060526_092458

  -rw------- 1 root root 243 2006-05-28 13:28 218.82.245.54.hist.20060528_114822

  -rw------- 1 root root 10 2006-05-28 12:18 218.82.245.54.hist.20060528_121605

  查看命令记录

  # export HISTFILE=/var/log/.hist/root/222.72.16.204.hist.20060608_152551

  # history

  1 vi /etc/profile

  2 cd /var/log/.hist

  3 ls -al

  4 cd sadmin

  5 ls -al

  6 more 58.35.169.51.hist.20060524_193219

  7 222.72.16.204.hist.20060622_143133

  8 more 222.72.16.204.hist.20060622_143133

  9 hist -f 222.72.16.204.hist.20060622_143133

  10 history -f 222.72.16.204.hist.20060622_143133

  11 history 222.72.16.204.hist.20060622_143133

  12 man histtory

  13 man history

  14 hist

  15 history

  16 ls

  17 export 222.72.16.204.hist.20060622_143133

  18 export HISTFILE=222.72.16.204.hist.20060608_152551

  19 history
页: [1]
查看完整版本: zt LINUX用户登录后精确命令记录