Date: Fri, 31 May 1996 14:54:30 -0700 (PDT) From: Veggy Vinny <richardc@CSUA.Berkeley.EDU> To: Terry Lambert <terry@lambert.org> Cc: terry@lambert.org, questions@freebsd.org Subject: Re: long motd files - screen pause? Message-ID: <Pine.PTX.3.91.960531145117.29367K-100000@soda.CSUA.Berkeley.EDU> In-Reply-To: <199605312134.OAA18765@phaeton.artisoft.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 31 May 1996, Terry Lambert wrote: > > > > Hmmm, okay but how do some machines make the motd pause even > > > > before it knows the termcap? > > > > > > By assuming 24 lines or by using the telnet/rlogin/sigwinch(pty) > > > hints as to terminal size (assuming they are set up correctly). > > > > > > On a 50 line diplay, you may get 3 "more" prompts this way. > > > > > > Obviously, the "more" prompts aren't reverse video (unless it hard codes > > > a terminal type in /etc/ttys). > > > > hmmm okay... or maybe their login is modified? > > This is taking too much time. 8-|. You want to do something, and you > are bound and determined that you be able to solve it in a way which, > frankly, it is impossible to make it work reliably. You need to seek > alternate soloutions, and pick one. > > > ======================================================================== > Terry's cannonical list of when you can and can't reliably use "more" > during the login process: > ======================================================================== > > 1) more needs the TERM environment variable. > > 2) TERM is: > > o set for the console in /etc/ttys > o NOT set for "network" terminals, as in pty's for: > o rlogin > o telnet > o xterm > o set by forced inheritance of environment by: > o xterm (sets the TERMvariable to contain a > correct termcap entry for an xterm > o set by name in environment (not all clients provide > this information) by: > o rlogin (remote TERM may not be correct, or > may not be supported on host system). > o telnet (remote TERM may not be correct, or > may not be supported on host system). > > > 3) more wants (but does not require, if it matches the termcap > entry) stty "rows" and "cols" settings. > > 4) stty "rows" and "cols" settings are typically: > > o set for the console by the console driver > o set on SIGWINCH from the master side of a pty > o set by rlogin (using SIGWINCH); not supported > by all clients > o set by xterm (using SIGWINCH) > o NOT set by telnet > o NOT set for non-console terminals over wire or modem > > > If a "rows" setting is present, it overrides the termcap setting. If > it is not, the rows are assumed from the TERMCAP entry. They are set > in the stty environment only after (if) login exec's a shell *AFTER* > displaying the MOTD, and the shell runs a startup script, and the > startup srcipt runs the X program "resize" that comes with xterm, or > the shell script runs the "tset" program. > > > So if login were to run "more" to display the /etc/motd: > > 1) It may not be able to inverse video the prompt, because it > may or may not have a valid TERM environment variable before > login has exec'ed a shell and the shell has run the startup > script in the system, then the user's, home directory. > > This has the effect of changing the expected prompt string, > which may damage the ability to reliably run automated logins. > > 2) It may not know the correct number of rows, either because > it does not have a valid TERM environment variable (which > makes "more" assume 24 rows, which may be too many, and so > truncate information by scrolling it off the top), or the > TERM environment variable may be set, but the stty "rows" > may be incorrect, or it may not be set at all, in which case, > it can truncate (via scrolling) or present multiple prompts > for "more". > > This will cause the user to lose information in the first > case, and to not be able to use automated logins in the > second case. Hmm, but what if all the terminals were either vt100 or xterm? > Conclusion #1: the "more" program needs information you can't be > guaranteed to be able to give it until *after* you have logged in. > Once you have already logged in, it is too late to use "more" to > display the /etc/motd because it is a file that is displayed by > login. This is how /etc/motd is *defined*. Hmmm, okay... is the /etc/motd displayed with cat? > Conclusion #2: don't use the motd for information you want to > potentially paginate. You can not reliably do this; it is simply > impossible because you traded this ability for the ability to use > terminals of various types and screen lengths on UNIX systems. Hmmm, I just wonder how it's done because all of the UC Berkeley machines in CSUA, OCF have the paging feature in the motd. > Conclusion #3: in some situations, it would be "safe" for you to > run "more" on the /etc/motd. You have not given us enough information > about *exactly* how and what programs you let users use to login > for us to be able to tell you if your situation is "safe" or not. Well, they'll be using rlogin, telnet and then go through their normal shell. > Conclusion #4: you can use the BSD "news" program ("msgs") to do what > you want without screwing around with login. You have control over > what shells users are allowed to use, and you can force them to use > shells that use system wide profiles to query the users for a valid > terminal type and for "msgs" to be run at login time for interactive > logins. This is probably the correct way to do what you say you want > done. Actually, this is the best idea yet... Vince
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.PTX.3.91.960531145117.29367K-100000>