合理使用shell历史记录功能
默认shell命令是存在.bash_history中,且不够详细,通过把以下命令写入到/etc/profile中,可以隐蔽的保存历史命令记录并方便审计。
#history
HISTDIR=/usr/share/.history
export HISTORY_FILE=${HISTDIR}/`date '+%Y-%m-%d'`.log
if [ ! -d $HISTDIR ];then
mkdir -p $HISTDIR
fi
if [ ! -f $HISTORY_FILE ];then
touch $HISTORY_FILE
fi
readonly PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk -v user=$USER "{print user \" \"\$2\" \"\$5}") #### $(pwd) #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >> $HISTORY_FILE'
注意点
- 可以通过修改HISTDIR来调整保存目录
- HISTORY_FILE文件必须有o+w权限,不然普通用户没法记录命令
- 最安全再加一个特殊权限 chattr +a /usr/share/.history/2018-11-05.log