这种操作超级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 ];

  • 主目录权限问题日后再加。