minimize use of root account

Polytropon freebsd at edvax.de
Mon Feb 22 02:27:12 UTC 2016


On Mon, 22 Feb 2016 13:07:28 +1100, Yudi V wrote:
> Thanks Polytropon.
> 
> based on the answers here looks like the best answer is to use SUDO or
> SUPER.

A good idea. You need to see if you prefer sudo or super.
Both have their individual strengths, but sudo is probably
the one you'll find more often.

> 
> > ###############
> > > #!/bin/csh -f
> >
> > Why?!
> >
> > There's a relevant article: "Csh Programming Considered Harmful" written
> > by Tom Christiansen.
> >
> > https://www-uxsup.csx.cam.ac.uk/misc/csh.html
> >
> > I have written one (!) csh script and I still regret it, maybe because
> > it still works. :-)
> >
> > On FreeBSD, the default shell script interpreter is /bin/sh.
> >
> >
> I am fairly new to Freebsd and I checked the shell variable before I wrote
> the script and as it said CSH, I just went with the csh script.

The C shell is the default interactive shell (dialog shell), while
/bin/sh is the default non-interactive shell (script shell), which
you can see as most system scripts start with "#!/bin/sh". It tends
to be more readable and portable than the C shell (which isn't even
the best imaginable interactive shell, as many users seem to prefer
bash or zsh which can easily be installed on FreeBSD).



> I did not
> get why the user shell is /bin/sh and the root is /bin/csh.

For all users (including root) /bin/csh is the default dialog shell.
It's easy to set a different shell using the "chsh" command. The
shell to use must be listed in /etc/shells.

The more simple /bin/sh is used as dialog shell only in single user
mode (maintenance mode) by default.



> This is on a personal backup server and only has few scripts. I dont want
> to readup on yet another shell scripting (someone in the forum mentioned
> that /bin/sh is Almquist's Shell NOT bash).

That is correct - it's "ash" (Almquist's Shell), which is a close
re-implementation of the traditional Bourne Shell; bash is the
Bourne Again Shell (common in Linux) which can be seen as a
superset of the Bourne shell. So bash usually executes sh code,
and sh code tends to be the most reliable and portable.



> I am just happy if they work as intended. If the server was
> meant for anything else I will definitely not use csh scripts.

As I said, I'm guilty myself of writing one csh script which is
still in use and still works, even though is so full of bullshit
it should go into /dev/null. ;-)



-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...


More information about the freebsd-questions mailing list