On 07/07/09 08:20, William Anderson wrote: > Alan Lord (News) wrote: >> On 07/07/09 01:24, Sean Miller wrote: >>> Not on my Ubuntu machine, my default user is still using bash. >> >> I would be surprised if the default shell is bash. >> >> /bin/sh is a symlink to /bin/dash as Dave explained. >> >> If you look at a user's default shell in /etc/passwd you will see most >> (if not all) point to bin/sh. (Although interestingly I note that root >> points to bin/bash). > > nope, /bin/sh may have been changed to point to dash instead of bash, > but new users are created with their shell set to bash. Every new > account I've set up on every ubuntu box i've set up lately gets bash as > their shell.
That's interesting. I wonder when this changed? Ubuntu was [in]famous for it's use of dash a couple of years ago but I just created a new test user and it's default shell is indeed bash. Looking into /etc further however, the picture becomes somewhat cloudier... /etc/adduser.conf specifies /bin/bash as the default login shell. /etc/default/useradd specifies /bin/sh # The SHELL variable specifies the default login shell on your # system. # Similar to DHSELL in adduser. However, we use "sh" here because # useradd is a low level utility and should be as general And /etc/login.defs (Which is referred to by man useradd for changing the default behaviour of useradd) has an interesting option FAKE_SHELL which can be used to call /bin/fakeshell first - although this is not present on my system. > You may all be thinking "default shell" means the shell new users are > set with to what sh points to. I meant default shell as the one set in /etc/passwd which is what they are assigned when they first login. The "default" shell is also what your shell script will point to if you don't start the file with a #!/bin/${SHELL}. Looking through that again, it's interesting to note that all *system* users which require a shell are set to /bin/sh and *real* users (i.e. actual people and root) are set to /bin/bash. Dash *is* actually the "default" shell for Ubuntu. "In Ubuntu 6.10, the default system shell, /bin/sh, was changed to dash" https://wiki.ubuntu.com/DashAsBinSh The default *login* shell is bash. Interesting little dig around that. I also discovered the /etc/alternatives directory which is debian's way to manage defaults when there are multiple choices such as with text editors etc. man update-alternatives explains more. Al -- ubuntu-uk@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-uk https://wiki.ubuntu.com/UKTeam/