
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 history
comando 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_history
arquivo, a menos que a sessão seja encerrada. Também ~/.bash_history
nã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.