4.11-RC1: Setting bash as user default shell

John Baldwin jhb at FreeBSD.org
Thu Dec 30 11:47:08 PST 2004


On Thursday 30 December 2004 02:11 pm, Randy Pratt wrote:
> On Thu, 30 Dec 2004 17:53:40 +0200
>
> Peter Pentchev <roam at ringlet.net> wrote:
> > On Thu, Dec 30, 2004 at 10:48:48AM -0500, Randy Pratt wrote:
> > > I did a fresh install of 4.11-RC1 on an older box:
> > >
> > > FreeBSD dell.weeble.com 4.11-RC1 FreeBSD 4.11-RC1 #0: Fri Dec 17
> > > 16:47:15 GMT 2004
> > > root at perseus.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386
> > >
> > > I was not able to set bash as the user's default shell during
> > > installation even though bash had been installed.  The message said
> > > that it was not a valid user shell.  I decided to leave it as
> > > /bin/sh to complete the installation.  I tried adding a new user
> > > after installation and setting the shell to
> > > /usr/local/bin/bash and a pop-up said:
> >
> > Is bash (or rather, /usr/local/bin/bash) listed in your /etc/shells file?
> > If not, have you by any chance had the root filesystem mounted read-only
> > during the bash port/package installation?
>
> The root filesystem is read/write as freshly installed.
>
> However, you are correct in that /etc/shells contains
> "/usr/local/bin/bash2" on 4.11-RC1 and it is "/usr/local/bin/bash"
> on 4.11-STABLE.  Perhaps both should be added to /etc/shells or
> revert back to the old behavior.  The way it is violates POLA in
> my view.
>
> > Just adding /usr/local/bin/bash to /etc/shells should be enough to
> > allow you to use either chsh or sysinstall to set it as a user/root
> > shell.
>
> Yes, that will work or specifying /usr/local/bin/bash2 in chsh will also
> work.  However, during installation, modifying /etc/shells is not
> an option.
>
> The problem is that none of this is documented and is going to
> cause new users grief and confuse present users.
>
> Thanks for your quick response and identification of the problem.
> I'll file a PR so it doesn't get lost in the shuffle.
>
> Thanks!
>
> Randy

This is a problem with the bash port as the bash port is what adds lines 
to /etc/shells.  Actually, you probably chose the bash2 port and that is 
installed as /usr/local/bin/bash2.  If you install the 'bash' port which 
contains bash 3.0, then that will install /usr/local/bin/bash and add it to 
your /etc/shells file.  Looking at the scripts used to build the CDs, it 
seems that the bash2 port is included on the first CD but not the 'bash' 
port.  Perhaps trying e-mailing re@ and asking them to use the shells/bash 
port rather than shells/bash2?

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the freebsd-qa mailing list