Comando terminal para obter informações sobre a hora e o usuário de todos os comandos executados em todas as sessões do terminal

Comando terminal para obter informações sobre a hora e o usuário de todos os comandos executados em todas as sessões do terminal

Quero saber qual usuário executou qual comando no terminal e quando, ou seja, se algum usuário fizer "rmdir abc" e remover um diretório específico, devo saber qual comando ele executou e a que horas. uma única sessão, esses dados devem estar disponíveis para mim como mantemos logs, para que eu possa analisá-los a qualquer momento.

Eu tentei o historycomando também e também adicionei tempo a ele, mas ele não mostra "Usuários" do comando e também é baseado em sessão, portanto, seus dados não são anexados ao ~/.bash_historyarquivo, a menos que a sessão seja encerrada. Também ~/.bash_historynão mostra hora e usuário, então não é útil. Alguém pode me ajudar, por favor. Só quero ver qual usuário executou qual comando a partir do momento em que o sistema foi iniciado e a que horas.

Responder1

Você pode verificar comandos executados por usuários usandosudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history

Para mais informações, você também pode verificar os logs AUTHtail /var/log/auth.log | grep username

tente esta pergunta semelhante:Como ver carimbos de data/hora no histórico do bash?

Responder2

Eu acho que está no arquivo de histórico bash de todos os usuários. Você só precisa obter uma lista de arquivos de histórico .bash e catá-los.

cd /home
find |grep .bash_history

saídas:

./gediz/.bash_history

do que gato

cat ./gediz/.bash_history

Você pode fazer isso em um loop for

a=find ...
for i in $a
do
echo $a
cat $i
done

Você pode criar um serviço ou editar o arquivo rc.local para inicialização do Ubuntu com um loop while que faz backup de todos os usuários .bash_history em cada loop para um local seguro para que, mesmo que os usuários excluam os deles, você possa verificar o que foi feito.

informação relacionada