这种操作超级low逼,只要操作用户在exit之前将history清除,那就没有记录了。
==============================================================
在/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 0003
=================下面这个的做法显然高档很多,但要注意权限的控制,不然人家自己就去把记录删了就不好了,最好加一个a,i啥的权限把============
1、which script
(一般现在系统中都已经自带这个命令了)
2、创建对应的文件夹mkdir /var/log/script
并且其它用户一定要给到7的权限的时候系统才能写入操作记录。
3、sudo chmod 777 /var/log/script (当然这个目录可以建到别的地方)
4、source /etc/profile 使环境生效。
5、在/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 ];
- 主目录权限问题日后再加。