kluge vs design

Guy Harris guy at rlgvax.UUCP
Thu Feb 28 09:19:22 AEST 1985


> /*
> > > Those users could have their .profile <set TERM and TZ>, then `exec' their
> > > <login shell> as the last statement.
> > 
> > That can be done - it's what we did before we fixed "login" to permit
> > you to set TERM and TZ directly.  However:
> > 
> > 1) it's a kludge, the need for which can be obviated by a minor change
> > to "login";
> 
> It's NOT a kluge, it was DESIGNED that way.

Yes.  It was designed to assume everybody used the Bourne shell as their
login shell.  Feh.  (P.S. Did you design it?  Do you know the designer?
If no, how do you know it was designed that way?)

> Why modify REAL CODE to do what you can with a PROFILE?

Because it's more convenient to set TERM directly than to explain that
"well, yes, there is a "shell" field in the password file, but you
can't always use it because Bell forgot that people don't always use
the Bourne shell as their login shell".  If .profile or /etc/profile
are so wonderful, how come there's a "shell" field in the password
file at all?  Why wasn't it removed in V7?

> What if Joe Blow wants the environment variable INPUT set to some
> special filename for his application? Are you going to go off to /usr/src
> & hack login.c for him too?

If it's truly a canned application, it's very unlikely that Joe Blow
even knows what an environment variable, much less that they should set INPUT
to some particular value.

> Does everyone even HAVE the source?

No, but we are a vendor and therefore have the source; we fix it once
and all our customers get it.  (AT&T fixes it and everybody who buys
from AT&T gets it.)

> > 2) it requires the system administrator to go through a song-and-dance
> > to set up their account ("No, Fred, you don't just set their "shell"
> > field to "/op/op/programs/shell", you leave it blank and stick the
> > following in their .profile...") - i.e., it renders the "shell" field
> > of the password file largely useless.
> 
> Systems administrators LIKE to sing & dance. That's what they get paid
> for.

At our sites, most SAs are former secretaries or clerks and do a nice job
of administering the systems using the utilities we provide.  They get
paid to add users, dump files, and understand the application and answer
questions, not to figure out the intricacies of UNIX.  The latter is
what our support people are paid for.

> The user sticks it to his own profile. Or asks the S.A. to do it.
> You have a point, tho. The shell field is largely useless and can be
> done away with altogether. `Exec' as the last line in .profile does the
> same thing at the expense of some extra startup time. 

And at the expense of taking a one-file user database and scattering the
information in it across N .profile files.  It's also nice not to have "uucp"
have to go through the entire "/etc/profile" and ".profile" to log in
(note the 4.xBSD ".hushlogin" facility to keep UUCP just from getting the
message-of-the-day when it logs in; if you force them to run the entire
/etc/profile you're wasting the remote site's money).

	Guy Harris
	{seismo,ihnp4,allegra}!rlgvax!guy



More information about the Comp.unix.wizards mailing list