Table of Contents

Historial con fecha en Bash

La salida del comando “history” con la fecha (día y hora) de cada orden ejecutada puede resultar muy útil en determinados escenarios. Para ellos creamos un fichero en el directorio “/etc/profile.d” si queremos que esta característica sea aplicada de forma global, en caso contrario, valdría con editar el fichero “~/.bash_profile” de cada usuario. También aumentaremos el tamaño del historial a 10 Gb.

Fichero: /etc/profile.d/history.sh

#####################################
export HISTTIMEFORMAT="%d/%m/%y %T  "
export HISTSIZE="10000"
export HISTFILESIZE="10000"
#####################################

Ejemplo de salida del comando history.

01/23/07 12:45:59  chkconfig -help
01/23/07 12:46:28  cat /etc/inittab

Historial de Bash registrando la IP del cliente SSH

Se pueden guardar las IPs de sesiones de IPs dentro del mismo dichero .bash_history en forma de comentario o bien en otro fichero a parte (recomendado).

Editar el fichero bash.bashrc (en el home o globalmente en /etc)

PROMPT_COMMAND='ssh_ip=`echo $SSH_CLIENT|awk "{print \\\$1}"`; echo "[$PPID] [$ssh_ip]`history 1`" >>~/.bash_history_sec'

Dicho código se ejecutará siempre al terminar de ejecutar un comando en la terminal, escribiendo en el home del usuario un fichero “.bash_history_sec”. Se agrega para el ejemplo dado el PPID.

[3990] []  504  22/05/13 18:00:14  telnet www.dominio.com 1138
[3990] []  505  12/06/13 18:00:16  ssh -p 1138 usuario@www.dominio.com
[3813] [10.0.202.4]  510  22/07/13 18:00:21  cat /home/cacas/fichero
[3811] [111.65.202.11]  511  23/07/13 18:00:48  cat .bash_history_sec
[3813] [10.0.202.4]  511  13/08/13 18:00:48  top
[3813] [10.0.202.4]  512  29/08/13 18:03:45  cat /etc/bash.bashrc

NOTA: Lógicamente esto no ofrece ninguna seguridad frente a intrusiones ya que eliminar o falsear el fichero del $HOME es algo trivial (Ver enlaces de interés).

Enlaces de interés