ubuntu 自定义记录用户登录以及操作日志

面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>>   hot3.png

root@ms:~# cd /etc
#更改之前先备份,养成良好的习惯,否则肠子都要悔青了
root@ms:/etc# cp profile profile.bak
root@ms:/etc# vi profile

在文章末尾加入下列shell脚本

history
USER=`whoami`
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 /var/log/history ]; then
mkdir /var/log/history
chmod 777 /var/log/history
fi
if [ ! -d /var/log/history/${LOGNAME} ]; then
mkdir /var/log/history/${LOGNAME}
chmod 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

 /var/log/history/这个文件路径可以自己定义。

然后重启

root@ms:~#reboot

再次登录进去,进行几个操作,cd啦,ls啦,做个样子就行了。

然后退出登录。

再登录进去。

root@ms:~# cd /var/log/history
root@ms:/var/log/history# ls
#列出了以登录用户为名的文件夹
root
root@ms:/var/log/history# cd root
root@ms:/var/log/history/root# ls
#列出登录日志  格式:用户名@IP地址_时间
[email protected]_20181019_10:18:17
root@ms:/var/log/history/root# cat [email protected]_20181019_10:18:17
#列出上次操作的所有shell命令
cd /var/log/
ls
cd history/
ls
cd root/
ls
cd 
ls
ci /etc/profile
vi /etc/profile
cd /etc/
ls
cd
cd /home/
ll
cd /var/log/history/
ls
cd root/
ls -l
useradd test
passwd test
exit

注意!注意!注意!

在创建用户的时候,尽量使用adduser

要问为什么,就是在useradd的时候没有创建用户的家目录,在登录此用户的的时候会报错。

Could not chdir to home directory /home/test: No such file or directory
-sh: 29: history: not found

完结。 

猜你喜欢

转载自blog.csdn.net/qq_38157006/article/details/89952509
今日推荐