linux history以用户名区分存储在/var/log/history/下

将一下内容写入/etc/profile.通过上述步骤,可以在 /var/log/history 目录下以每个用户为名新建一个文件夹,每次用户退出后都会产生以用户名、登录IP、时间的日志文件,包含此用户本次的所有操作(root用户除外)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
history
USER=`whoami`
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`

if [ "$USER_IP" = "" ]; then
2USER_IP=`hostname`
fi

if [ ! -d /var/log/history ]; then
2mkdir /var/log/history
2chmod 777 /var/log/history
fi

if [ ! -d /var/log/history/${LOGNAME} ]; then
2mkdir /var/log/history/${LOGNAME}
2chmod 300 /var/log/history/${LOGNAME}
fi

export HISTSIZE=4096
DT=`date +"%Y%m%d_%H:%M:%S"`

export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null