Isso não é tão abrangente quanto a contabilidade real, e pode ser desfeito facilmente por um usuário, mas supondo que não precise ser um sistema de contabilidade real e que tanto o BASH quanto o rsyslog estejam em uso, edite o sistema em todo o sistema. Arquivo BASH RC:
sudo -e /etc/bash.bashrc
Anexar ao final desse arquivo:
export PROMPT_COMMAND='RET_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RET_VAL]"'
Acima, logger
registra o valor de retorno de tempo, usuário, comando e comando. Configure o registro para "local6" com um novo arquivo:
sudo -e /etc/rsyslog.d/bash.conf
E o conteúdo ...
local6.* /var/log/bash_commands.log
Reinicie o rsyslog:
sudo service rsyslog restart
Faça logout. Log in. Rotação de log:
sudo -e /etc/logrotate.d/rsyslog
Existe uma lista de arquivos de log para girar da mesma maneira ...
/var/log/mail.warn
/var/log/mail.err
[...]
/var/log/message
Adicione o novo arquivo de log do bash-commands nessa lista:
/var/log/bash_commands.log
Salve e reinicie / recarregue o rsyslog. (A rotação acabará substituindo os arquivos de log, portanto, mais pensamento ou configuração podem ser necessários.)
Para ver todos os arquivos que um pacote instalou:
dpkg-query -L [package_name]
Assim, você pode executar algo assim quando instala o software.
dpkg-query -L abc-package > /var/log/files_abc-package.log