O Bash possui recurso de gravação em syslog, que é útil quando acessado por mais de uma pessoa.
Você precisa ter o bash versão 4.1+, no meu caso o CentOS 6.4 e o CentOS 7 já o têm
Abra o arquivo /etc/bashrc
e cole no final:
PROMPT_COMMAND=$(history -a)
typeset -r PROMPT_COMMAND
function log2syslog
{
declare command
command=$BASH_COMMAND
logger -p local1.notice -t bash -i -- $USER : $PWD : $command
}
trap log2syslog DEBUG
Da próxima vez que você fizer login e efetuar o syslog:
$ sudo tail -10 /var/log/messages
Sep 21 20:35:57 my-server bash[28245]: pavel : /home/pavel : PATH=$PATH:$HOME/bin
Sep 21 20:35:57 my-server bash[28246]: pavel : /home/pavel : export PATH
Sep 21 20:36:15 my-server bash[28247]: pavel : /home/pavel : sudo tail -50 /var/log/messages
Sep 21 22:42:01 my-server bash[28273]: pavel : /home/pavel : sudo tail -50 /var/log/messages
Sep 21 22:51:35 my-server bash[28276]: pavel : /home/pavel : sudo nano /etc/bashrc
Sep 21 22:51:48 my-server bash[28304]: pavel : /home/pavel : PATH=$PATH:$HOME/bin
Sep 21 22:51:48 my-server bash[28305]: pavel : /home/pavel : export PATH
Sep 21 22:51:58 my-server bash[28306]: pavel : /home/pavel : sudo tail -f /var/log/messages
Sep 21 22:54:46 my-server bash[28309]: pavel : /home/pavel : sudo nano /etc/bashrc
Sep 21 22:56:04 my-server bash[28312]: pavel : /home/pavel : sudo tail -10 /var/log/messages
Isso pode funcionar bem com serviços de agregação de log. Embora não possa ser usado para fins de auditoria de segurança, porque é fácil evitar esse registro