Login que peta xterm. Como y porque.

By 6 de agosto de 2006 Gentoo, Linux No Comments

Gebtoo Topic MirrorBueno parece que esto es un poco retorcido.
Resulta que ejecutando:

# login solusan

Tanto konsole como xterm, desaparecen, zas!
Pero si esto mismo se hace desde una tty en modo texto (al menos en Gentoo), no sucede.

Lo que más desconcierta de todo esto es que desde un acónsola sin X, no pasa que 'salte' la konsole/xterm. (almenos en Gentoo)

Mirando un man login, OJO en un man login en inglés por que en castellano no te da NINGUNA PISTA de lo que está ocurriendo.... aparace lo siguiente (me he permitido hacer una traducción en el segundo parrafo)Espero que quede claro.

BUGS

A recursive login, as used to be possible in the good old days, no longer works; for most purposes su(1) is a satisfactory substitute. Indeed, for security reasons, login does a *vhangup() system call to remove any possible listening processes on the tty. This is to avoid password sniffing.
If one uses the command "login", then the surrounding shell gets killed by vhangup() (virtually hangup the current tty) because it's no longer the true owner of the tty. This can be avoided by using "exec login" in a top level shell or xterm.

* vhangup simulates a hangup on the current terminal. This call arranges for other users to have a "clean" tty at login time. C function.

BICHO! (ja!)

Un login recursivo usado en los buenos, viejos tiempos, para obtener resultados similres en la mayoría de los casos se recurre a su (mirar man su), este es un sustituto satisfactorio.
En serio, por razones de seguridad, login hace una llamada a la función *vhangup(); que mata cualquier llamada a procesos que esten escuchando la tty (cónsola). Esto se hace para evitar un sniffing de passwords (que el password lo puedan obtener).
Si alguien utiliza el comando "login", la sesión del shell la mata vhangup(); (cuelga virtualmente la tty en uso), ya que este es el verdadero dueño de la tty. Esto puede ser evitado utilizando "exec login" en un nivel top shell o en una xterm. Eso si al salir con un "exit" o un "logout", xterm (konsole) desaparece

*vhangup() Función de C. Simula un cuelge de la terminal en uso. Esta llamada hace que los usuario encuentren una tty limpia cuando entren en el sistema.

Leave a Reply

Your email address will not be published.