2021-08-24
1. 需求产生原因
linux 系统中的日志存放在目录 /var/log/ 下,今天想看看我之前的操作记录,发现系统中的日志并不包括各个用户操作文件的记录,所以打算自己建一个。
2. 创建日志存放目录
# 创建日志存放目录 mkdir -p userlogin/records # 给目录添加最高权限 777 # 表示 records 在该用户,该用户同组用户以及其他用户都有读写执行的权限 chmod 777 userlogin/records/ # 使用户对 records 具有写权限但是不能删除该文件 chmod +t userlogin/records/
3. 配置环境变量
vi /etc/profile
# 用户操作日志 if [ ! -d /var/log/userlogin/records/${LOGNAME} ] then mkdir -p /var/log/userlogin/records/${LOGNAME} chmod 777 /var/log/userlogin/records/${LOGNAME} fi export HISTORY_FILE="/var/log/userlogin/records/${LOGNAME}/bash_history" export PROMPT_COMMAND='{ date "+%Y-%m-%d %T *** $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") *** $(history 1 | { read x cmd; echo "$cmd"; })"; } >> $HISTORY_FILE'
生效配置文件
source /etc/profile
4. 测试
# 查看 root 操作日志 cd /var/log/userlogin/records/root # 进行一些简单的操作后查看 bash_history 中是否生成记录 cat bash_history