Date: Tue, 30 Oct 2007 13:39:12 +0200 From: Giorgos Keramidas <keramida@ceid.upatras.gr> To: Stephen Allen <p0036343@brookes.ac.uk> Cc: freebsd-questions@freebsd.org Subject: Re: Dangers of using a non-base shell Message-ID: <20071030113912.GB3941@kobe.laptop> In-Reply-To: <472647A0.3030009@brookes.ac.uk> References: <472647A0.3030009@brookes.ac.uk>
index | next in thread | previous in thread | raw e-mail
On 2007-10-29 20:50, Stephen Allen <p0036343@brookes.ac.uk> wrote:
> It's been drawn to my attention not to use bash from the ports
> collection, because if one of it's dependencies (gettext or libiconv)
> fails or is updated significantly, it could break, and prevent
> login. The suggested solution was to use a base shell (such as sh) and
> append 'bash -l' to .shrc to automatically enter bash.
>
> The quite annoying side-effect is having to type 'exit' twice to get
> out of a su shell or screen.
>
> Would it be a better idea to use the pre-compiled binary for bash?
> And if I did so, could I be alerted to updates as easy as using
> 'pkg_version -v' when checking if any ports need updating?
I've been using the following for some time:
keramida> su -
Password: ********
root# exec env SHELL=/usr/local/bin/bash bash -l
The same trick works with s/bash/mksh/ or s/bash/pdksh/, as far as I can
tell, and tcsh's history mechanism makes it easy to run the same command
later. All I have to type is "exec " and hit the arrow-up key :)
The env(1) trick makes sure that sub-shells use bash(1) too, and 'exec'
reduces the number of 'exit' commands I have to type.
Now, if there's a problem with bash(1), I will probably have to su
again, but that's less trouble than being locked out because gettext has
broken, the *default* root shell is bash and _that_ fails all the time.
- Giorgos
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071030113912.GB3941>
