这种操做超级low逼,只要操做用户在exit以前将history清除,那就没有记录了。bash
==============================================================spa
在/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 /Operation/records ]
then
mkdir -p /Operation/records
chmod -R 777 /Operation
fi
if [ ! -d /Operation/records/${LOGNAME} ]
then
mkdir /Operation/records/${LOGNAME}
chmod -R 766 /Operation/records/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date "+%Y-%m-%d_%H:%M:%S"`
export HISTFILE="/Operation/records/${LOGNAME}/${USER_IP} records.$DT"
chmod -R 766 /Operation/records/${LOGNAME}/*records* 2>/dev/null
umask 0003code
=================下面这个的作法显然高档不少,但要注意权限的控制,否则人家本身就去把记录删了就很差了,最好加一个a,i啥的权限把============blog
一、which script
(通常如今系统中都已经自带这个命令了)ip
二、建立对应的文件夹mkdir /var/log/script
而且其它用户必定要给到7的权限的时候系统才能写入操做记录。it
三、sudo chmod 777 /var/log/script (固然这个目录能够建到别的地方)io
四、source /etc/profile 使环境生效。
function
五、在/etc/profille文件的最后一行加上一下内容。
if
[ $UID -
ge
0 ];
then
exec
/usr/bin/script
-t 2>
/var/log/script/
$USER-$UID-`
date
+%Y%m%d%H%M`.
date
-a -f -q
/var/log/script/
$USER-$UID-`
date
+%Y%m%d%H%M`.log
fi
参数:
-t 指明输出录制的时间数据
-f 若是须要在输出到日志文件的同时,也能够查看日志文件的内容,可使用 -f 参数。PS:能够用于教学,两个命令行接-f能够实时演示
-a 输出录制的文件,在现有内容上追加新的内容
-q 可使script命令以静默模式运行
注意:
我这里把用户ID大于0的都记录下来了,你能够从新登陆用户,随便操做一些命令,查看生成的文件。
root用户的ID为0,新建普通用户的UID是从500开始的(经过cat /etc/password能够查看用户的UID),若是你不想记录root用户的操做,你把if里面的值改为500: if [ $UID - ge 500 ];