Linux下查看历史操作记录
2012-04-17 10:23:05 我来说两句 收藏 我要投稿
last命令可以用来查看用户的登陆记录。
history命令可以查看命令的执行历史。
www.2cto.com
常用日志文件如下:
access-log 纪录HTTP/web的传输
acct/pacct 纪录用户命令
aculog 纪录MODEM的活动
btmp 纪录失败的纪录
lastlog 纪录最近几次成功登录的事件和最后一次不成功的登录
messages 从syslog中记录信息(有的链接到syslog文件)
sudolog 纪录使用sudo发出的命令
sulog 纪录使用su命令的使用
syslog 从syslog中记录信息(通常链接到messages文件)
utmp 纪录当前登录的每个用户
wtmp 一个用户每次登录进入和退出时间的永久纪录
xferlog 纪录FTP会话
但是~/.bash_history里面是没有时间的记录的,可以用下面的脚本来记录时间。
通过在/etc/profile里面加入以下代码就可以实现:
PS1="whoami
@hostname
:"’[$PWD]’
history www.2cto.com
USER_IP=who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'
#print
N
F
取
最
后
一
个
域
的
字
段
i
f
[
"
NF取最后一个域的字段 if [ "
NF取最后一个域的字段 if["USER_IP" = “” ]
then
USER_IP=hostname
fi
if [ ! -d /tmp/dbasky ]
then
mkdir /tmp/dbasky
chmod 777 /tmp/dbasky
fi
if [ ! -d /tmp/dbasky/
L
O
G
N
A
M
E
]
t
h
e
n
m
k
d
i
r
/
t
m
p
/
d
b
a
s
k
y
/
{LOGNAME} ] then mkdir /tmp/dbasky/
LOGNAME] then mkdir/tmp/dbasky/{LOGNAME}
chmod 300 /tmp/dbasky/
L
O
G
N
A
M
E
f
i
e
x
p
o
r
t
H
I
S
T
S
I
Z
E
=
4096
D
T
=
‘
d
a
t
e
"
e
x
p
o
r
t
H
I
S
T
F
I
L
E
=
"
/
t
m
p
/
d
b
a
s
k
y
/
{LOGNAME} fi export HISTSIZE=4096 DT=`date " %Y%m%d_%H%M%S"` export HISTFILE="/tmp/dbasky/
LOGNAME fi exportHISTSIZE=4096 DT=‘date" exportHISTFILE="/tmp/dbasky/{LOGNAME}/
U
S
E
R
I
P
d
b
a
s
k
y
.
{USER_IP} dbasky.
USERIPdbasky.DT"
chmod 600 /tmp/dbasky/${LOGNAME}/dbasky 2>/dev/null
其实通过上面的代码不能看出来,在 系统的/tmp新建个dbasky目录,在目录中记录了所有的登陆过系统的用户和IP地址,是不是觉得很方便 呢?我们还可以用这个方法来监测系统的安全性。
www.2cto.com
可以看到在使用history命令的时候是没时间显示,不知道这个命令是什么时候所执行,这个时候可以编辑/etc/bashrc文件,加入如下三行:
HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT=”%Y%m%d-%H%M%S: ”
export HISTTIMEFORMAT
保存后退出,关闭当前shell,并重新登录
这个时候,在~/.bash_History文件中,就有记录命令执行的时间了