derheimi schrieb:
Wo bzw. was übernimmt denn die Einstellung vom Terminal des Benutzers?
Der Client (telnet bzw. ssh) ist dafür zuständig, diese Information an den Server (telnetd bzw. dropbear/sshd) zu übermitteln. Das "wie" hängt vom Protokol (telnet bzw. ssh) ab.
Ich weiß, dass es bei SSH so eine Art "Kontrollkanal" gibt, wo verschiedene Metainformationen ausgetauscht werden. Wird dieser da benutzt? Bei Telnet gibt es sowas nicht, da könnte das über verschiedene Escape-Sequenzen laufen?
Der richtige telnet Server macht anscheinend dem Client klar, daß er die TERM-Angabe haben will und bekommt sie auch. Der telnetd aus der Busybox tut das leider nicht. Die Details müßte man nachsehen. Die Escape-Sequenzen im telnet bilden sozusagen den Kontroll-Kanal, wobei Escape hier nicht den Zahlenwert 27 sondern 255 hat.
Code:
19:32:23.085455 IP 127.0.0.1.56931 > 127.0.0.1.23: P 28:72(44) ack 46 win 257
0x0000: 4510 0060 18a5 4000 4006 23e1 7f00 0001 E..`..@.@.#.....
0x0010: 7f00 0001 de63 0017 c377 4e81 c43d b03d .....c...wN..=.=
0x0020: 8018 0101 f622 0000 0101 080a 5bfc 56d9 ....."......[.V.
0x0030: 5bfc 56d1 fffa 1f00 7e00 36ff f0ff fa20 [.V.....~.6.....
0x0040: 0033 3834 3030 2c33 3834 3030 fff0 fffa .38400,38400....
0x0050: 2700 fff0 fffa 1800 5654 3437 3131 fff0 '.......VT4711..
linux login: test
Password:
tset: unknown terminal type vt4711
Terminal type?
Wenn man es nicht grundsätzlich auf "linux" setzt, dann sollte man es IMHO auch nicht grundsätzlich auf "xterm" setzen, so wie es momentan in der /etc/init.d/rc.mod gemacht wird.
Richtig.
Da aber der telnetd der Busybox TERM nicht annimmt (war mir bisher nicht aufgefallen), ist es besser, den Wert zu setzen, der häufig richtig ist, als gar keinen. Wobei ich nicht sicher bin, ob das Setzen von TERM an der Stelle eine Auswirkung hat oder nicht.
Das ist schön ausformuliert das, was ich oben vorgeschlagen habe.
Der Satz war als Einleitung gemeint für "Entweder man gibt die Auswahl vor oder man überläßt die Auswahl dem Anwender". Wobei sich meines Wissens bisher noch keiner über die fehlende Auswahl beklagt hat. Ich vermute, mit den von Dir genannten Terminal-Typen sind über 99% der Fälle abgedeckt. Theoretisch wäre es richtig, die Terminal-Typen zur Auswahl anzubieten. Praktisch gesehen weiß ich nicht, ob sich heutzutage die Mühe lohnt. Mein vt4711 ist sowieso gerade zur Reparatur
.
Wobei screen da schon ein wenig rausfällt, da es selbst Terminal spielt.
Stimmt, das ist ein Sonderfall. Das Programm "screen" verwendet den Terminal-Typ "screen". dieser muß also für die Programme, die unter "screen" laufen, vorhanden sein. Das Programm nutzt für seine eigene Bildschirmausgabe den TERM-Wert, den es vorfindet.
Wenn jemand aber "screen" auf dem PC verwendet, um auf die Box zuzugreifen, sollte idealerweise der Termcap-Eintrag "screen" auf der Box sein, selbst wenn das Programm "screen" nicht auf der Box sein sollte.