对后面的(1)方法的提取文件改写法(强烈推荐)html
记录存储位置:web
mkdir -p /usr/local/recordsvim
chmod 777 /usr/local/records/
chmod +t /usr/local/records/bash
脚本存储位置:ssh
mkdir -p /usr/local/system_script测试
编写脚本(记录用户执行过的命令):
vim /usr/local/system_script/bash_record.sh.net
# record cmd history if [ ! -d /usr/local/records/${LOGNAME} ] then mkdir -p /usr/local/records/${LOGNAME} chmod 300 /usr/local/records/${LOGNAME} fi export HISTORY_FILE_DATE_NAME=`date "+%Y-%m-%d"` export HISTORY_FILE="/usr/local/records/${LOGNAME}/bash_history_${HISTORY_FILE_DATE_NAME}" 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'
使脚本可执行
chmod +x /usr/local/system_script/bash_record.sh日志
/etc/profile末尾追加内容:htm
vim /etc/profileblog
# myscript # record cmd history alias su='su -l ' HISTTIMEFORMAT="%F %T " source /usr/local/system_script/bash_record.sh
说明:
定义su别名,是为了实现切换用户时,强制更新环境变量,避免环境变量未发生改变而引发的,切为低权限用户后,无写文件权限记录history日志。
定义HISTTIMEFORMAT格式,是为了写入history日志时,有命令执行时的时间。将 HISTTIMEFORMAT 变量加入 /etc/profile 文件中,让它对全部用户永久生效。
使配置生效
source /etc/profile
注意:上述脚本只能记录经过sshd服务端口(一般为22) 链接进入主机的用户操做,不能记录经过其余服务(如webmin)端口接入主机的用户操做。
一些说明:
记录脚本
cd /usr/local/
mkdir records
chmod 777 records/
chmod +t records/
vim /etc/profile
说明:
o+t
https://www.iteye.com/blog/cocos-1089890
https://blog.51cto.com/13868278/2149028
(1)脚本一:推荐(按日期分割记录文件)
# record cmd history if [ ! -d /usr/local/records/${LOGNAME} ] then mkdir -p /usr/local/records/${LOGNAME} chmod 300 /usr/local/records/${LOGNAME} fi export HISTORY_FILE_DATE_NAME=`date "+%Y-%m-%d"` export HISTORY_FILE="/usr/local/records/${LOGNAME}/bash_history_${HISTORY_FILE_DATE_NAME}" #export HISTORY_FILE="/usr/local/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'
添加history中每一个命令的执行时间:export HISTTIMEFORMAT='%F %T '
https://zhidao.baidu.com/question/1516093640707389740.html
(2)脚本二:(测试用,不推荐,日志会不断累积)
if [ ! -d /usr/local/records/${LOGNAME} ] then mkdir -p /usr/local/records/${LOGNAME} chmod 300 /usr/local/records/${LOGNAME} fi export HISTORY_FILE="/usr/local/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