Me gustaría editar la Last login:
información que se imprime junto con el mensaje del día, pero no puedo encontrar el script que genera y hace eco.
¿Dónde se define, en un script de shell fácil de editar, o se cierra en un binario?
Tenga en cuenta que esto es diferente de ServerFault: ¿Cómo puedo editar el mensaje de bienvenida cuando se inicia ssh? . La información del "último inicio de sesión" no se imprime desde adentro /etc/update-motd.d/
, sino que se define configurando el PrintLastLog
indicador y, por lo tanto, no se puede editar como las otras partes del mensaje del día.
utmp
ywtmp
archivos (dependiendo de la distribución, el registro/var/run/utmp
o/var/log/utmp
o busque en/var
el directorio). Estos archivos no se guardan como texto, sino como binarios, por lo que necesitará herramientas especiales para editarlos. El archivo utmp realiza un seguimiento del estado actual de inicio de sesión de cada usuario. El archivo wtmp registra todos los inicios de sesión y el historial de desconexiones. Necesitará herramientas especiales para editarlos, pero no pude encontrar nada realmente.Respuestas:
Parece que el formato de la línea impresa se compila en
sshd
:[me@risby ~]$ ssh lory
Last login: Fri May 23 10:59:01 2014 from 2a01:2c0:e:300:7271:bcff:feac:445a
[me@lory ~]$ strings /usr/sbin/sshd | grep -i "last login"
Last login: %s
Last login: %s from %s
Tampoco puedo ver ninguna opción de configuración para cambiar eso, por lo que deberá editar la fuente y volver a compilar.
Editar : en el caso límite, puede encontrar la fuente en http://www.openssh.org . Pero no nos dice que está utilizando OpenSSH, ni nada sobre su plataforma, por lo que es difícil ser más específico. Si se trata de un sistema Linux, sería mucho mejor obtener la fuente adecuada para su distribución de la forma habitual y volver a compilar a través de sus mecanismos específicos de distribución.
Pero en realidad, no debería hacer esto a menos que tenga una razón comercial extremadamente convincente para hacerlo: está haciendo una pesadilla de mantenimiento para usted, yendo a una versión compilada a mano de un paquete sensible a la seguridad.
fuente
sshd
?wtmp
, configuran elPrintLastLog
indicadorno
y vuelven a crear el aviso de "último inicio de sesión" con mi propio script colocadoupdate-motd.d
. Mucho más fácil de mantener. :)motd
salida no está completamente actualizada. Así que estoy pensando queupdate-motd
podría no ejecutarse en cada inicio de sesión.La última información de inicio de sesión se almacena
/var/log/wtmp
o/var/log/utmp
son archivos binarios. Sin mirar el código fuente de sshd, no puedo estar completamente seguro, pero esperaría que esté recuperando la información de esos archivos mediante llamadas al sistema adecuadasParece poco probable que encuentre una manera de cambiar fácilmente esta información, ya que es parte de la seguridad de los usuarios.
Si realmente quieres los detalles sangrientos, entonces debes mirar el código fuente de la función
login_get_lastlog
que puedes encontrar enloginrec.c
fuente
Otra solución sería borrar la pantalla al comienzo del archivo motd así:
Nota: reemplace
^[
con el símbolo de escape (que puede crear en el editor nano presionando las siguientes teclas: esc+ v+ esc)fuente
¿Quizás alguna solución en caso de que solo quiera cambiar la última IP de inicio de sesión?
Por ejemplo, puede cambiar la dirección IP que se muestra a "localhost" iniciando sesión en ssh nuevamente desde la máquina controlada a distancia.
Inicio de sesión remoto a través de ssh >> ssh username @ localhost
Ahora la última IP registrada será localhost
fuente