Re: Shells in wrong directory according to chsh.
Richard Kettlewell:
> I have no ksh, but /usr/bin/ksh still appears in /etc/shells (which is
> where chsh gets its idea of which shells are valid)... it strikes me
> that perhaps it ought to be the responsibility of the shell packages
> to register themselves in /etc/shells (although shipping a version
> which correctly lists all shells Debian supports would certainly be
> adequate).
A shell.deb should not, must not put itself automatically into /etc/shells.
A system admin may very well want to restrict the shells listed in
/etc/shells. If we provide an "install-shell" command for shell.deb's to
use, it must provide an override (perhaps /etc/shells.allow and .deny).
On the other hand, shells shouldn't move around, since they are often
referenced by scripts by the full name ("#!/bin/sh" etc). So providing
a default /etc/shells when the system is first installed is a good solution
-- it breaks only when someone adds a new shell to the project, one which
is not included in the old /etc/shells. In this case, the postinst script
could check if the shell is in /etc/shells and print out a message if it
isn't. The sysadmin can then install the relevant line by hand, if
he thinks it is important.
(New shells are quite rare. This should not be a problem. I'm quite happy
with the current situation.)
Reply to: