Hola, > Tengo una pequeña duda, para ver los accesos de un > usuario a un sistema, ocupo el comando > > last -i usuario > > y me proporciona lo que espero, pero cuando abro el > archivo que usa last para generar el informe, veo solo > caracteres raros. > > Mi pregunta es, ¿como es el formato del archivo para > poderlo leer desde una aplicación, o existe alguna > otra aplicación que me permita manipular ese archivo, > digamos para generar reportes de accesos de los > usuarios al sistema, duración de la conexión entre > otras cosas?
Que yo sepa no hay ninguna aplicación para manipular el fichero, aunque sí que hay los llamados zappers para borrar un acceso ilegal, pero creo que lo que hacen el sobreescribir con ceros el fichero. El fichero en cuestión que utiliza last es "/var/log/wtmp" que es binario. La estructura de los datos se encuentra en utmp.h. $ man utmp Así que si tienes ganas y tiempo, ale, a programar... :-) Permíteme que te haga un copy-paste de un documentillo que hice por ahí... :-) Saludos. -------- 1.1.1 wtmp Este archivo es un fichero binario, lo que significa que no se puede leer su contenido directamente volcándolo con la orden cat por ejemplo. Almacena información relativa a cada conexión y desconexión al sistema. Normalmente se ubica en /var/log o /var/adm. El contenido se puede visualizar con la orden last, de tal manera, que el último registro aparecerá en primer lugar. Además, con el comando ac se pueden seleccionar el orden en el que se quiere que aparezcan los datos, por fecha, por usuario, etc. También se puede determinar el tiempo que ha estado un usuario en el sistema. Los registros guardados en este archivo (y los de utmp) tienen el formato de la estructura utmp, que contiene información como el nombre de usuario, la línea por la que accede, el lugar desde donde lo hace y la hora de entrada y salida del sistema. Se puede consultar la página de man relacionada para ver la estructura concreta del clon de Unix con el que se trabaje. Algunas versiones como Solaris o IRIX, utilizan un fichero wtmp extendido denominado wtmpx, con campos adicionales que proporcionan más información sobre la conexión. En este fichero guardan información distintos procesos de autentificación como login, ftpd, etc., X-Windows cuando da acceso a un terminal y el proceso de reinicio/apagado del sistema. Cada vez que un usuario entra o sale del sistema, el fichero aumenta de tamaño. Si un intruso quiere borrar el registro, generalmente lo sobrescribirá con ceros, con lo que conviene vigilar el tamaño. Las copias de seguridad de este fichero son de gran importancia, sobretodo si tenemos en cuenta que también graba el cierre y la puesta en marcha del sistema. Este fichero es de gran importancia pues puede detectar si alguien ha utilizado la cuenta de un usuario para acceder al sistema. Esto es fácil de detectar si el propietario de la cuenta tiene costumbre de acceder al sistema en horas específicas, por el tiempo de estancia en el sistema o si la conexión se produce en horas en las que nunca se accede o, simplemente, el origen de la máquina cliente es desconocido. 1.1.2 utmp El archivo utmp es también un fichero binario con la información de cada usuario que está conectado en un momento dado en el sistema. Así pues, es un registro dinámico y no guarda información histórica. Utiliza la misma estructura de datos que wtmp. El programa login genera un registro en este fichero cuando un usuario se conecta al sistema e init lo elimina cuando desconecta. Normalmente se ubica en /var/log o en /var/adm aunque puede estar también en /etc. Para visualizar su contenido se puede utilizar last indicándole la ruta del archivo, w o who. Algunas versiones utilizan una versión extendida de utmp (xutmp) con campos adicionales. 1.1.3 lastlog El fichero lastlog es un fichero binario guardado generalmente en /var/log o /var/adm. Contiene un registro para cada usuario con la fecha y hora de su última conexión. Se pueden visualizar sus datos con la orden lastlog y finger. Cuando un usuario se registra en el sistema, el programa de registro tratará de identificarlo buscando su identificador en el fichero lastlog. Cuando lo encuentra, el programa muestra la última entrada al sistema. Los usuarios del sistema pueden utilizar este método para averiguar si alguien ha utilizado su cuenta. El programa login actualiza el registro renovando la información sobre el puerto a través del cual accedió al sistema y la hora en que tuvo lugar el acceso. 1.1.4 faillog Este fichero es equivalente a lastlog, pero el lugar de guardar información sobre la fecha y hora del último acceso al sistema, lo hace del último intento de acceso de cada usuario. Una conexión es fallida si alguien teclea incorrectamente su contraseña. Esta información se muestra la siguiente vez que dicho usuario entra correctamente a la máquina. 1.1.5 loginlog Si en algunas versiones de Unix como Solaris se crea el archivo /var/adm/loginlog (que originalmente no existe), se registrarán en él los intentos fallidos de login, siempre y cuando se produzcan más de cuatro seguidos. 1.1.6 btmp En algunos clones de Unix como Linux o HP-UX, el fichero btmp se utiliza para registrar las conexiones fallidas al sistema, con un formato similar al que utiliza wtmp para las conexiones exitosas. 1.1.7 sulog Este es un fichero de texto donde se registran las ejecuciones de la orden su, indicando fecha, hora, usuario que lanza el programa y usuario cuya identidad adopta, terminal asociado y éxito (+) o fracaso (-) de la operación. Todo intento de acceder a la cuenta de root quedará registrado aquí, por lo que puede detectar intentos fallidos de convertirse en root. Además, queda registrado el intercambio de identidades que existen entre usuarios, cosa que se debe vigilar porque la contraseña de un usuario no la debe conocer nadie más que él. Si hay un intercambio de identidad entre usuarios debemos sospechar que algún intruso ha conseguido varias contraseñas del sistema. _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com