Skip to content

Rsyslog

Collecter les commandes passees en root

Pour les loguer dans local6

vim /etc/profile.d/log_commands.sh
log_command() {
local cmd
cmd=$(history -a >(tee -a $HISTFILE) | sed -e "s/^[ ]*[0-9]*[ ]*//")
if [[ -n "$cmd" ]]; then
    if [[ -n "$SUDO_USER" ]] ; then
        logger -p local6.notice -t log_cmd "[$SUDO_USER:$PWD]# $cmd"
    else
        logger -p local6.notice -t log_cmd "[root:$PWD]# $cmd"
    fi
    history -c; history -r
fi
}

if [[ $USER == "root" ]]; then
    PROMPT_COMMAND=log_command
fi

Pour les exploiter

vim /etc/rsyslog.conf
- *.info;mail.none;authpriv.none;cron.none              /var/log/messages
+ *.info;mail.none;authpriv.none;cron.none;local6.none  /var/log/messages
+ local6.notice                                         /var/log/commands.log