O Bash não fornece informações que você deseja. Eu acho que você quer evitar a configuração de COMMAND_PROMPT e histappend porque os usuários podem substituí-los facilmente. Mas os usuários podem desabilitar completamente o armazenamento de comandos no histórico quando eles configuram HISTCONTROL="ignorespace" e inserem um espaço antes de cada comando. Portanto, os usuários que não estão dispostos a serem monitorados não podem ser monitorados de forma confiável por meio do histórico bash.
O monitoramento ad hoc de uma única sessão pode ser feito em strace . Procure o PID do bash do usuário e, em seguida, chame strace -p <bash-pid> 2>&1 |grep "read(0," . Você pode ver todos os caracteres digitados pelo usuário - incluindo erros de digitação e comandos de edição.
A maior parte da distribuição linux fornece auditd package. Ele monitora e audita os componentes do sistema para que o administrador possa obter informações sobre as atividades do sistema no passado. Um módulo PAM pam_tty_audit coopera com auditd e ativa ou desativa a auditoria de atividades TTY. Eu acho que você não precisa reinventar roda e usar o pam_tty_audit .