On my company's Ubuntu 15.10 desktop system, I log in via Active Directory using some magic based upon PBIS. Thus, my user account is not listed in /etc/passwd even though I have a home directory under
/home/local/FOOBAR/dotancohen/. How can I configure bash as the shell when there is no /etc/passwd line to edit and so cannot use
I do have another account on this machine with admin access, so I can configure the system as admin if needed. However, if there is a user-only solution I would prefer that for use in the future when I won't have admin access!
Here are the results of a few key commands, run from opening Gnome Terminal in Unity (the Ubuntu desktop):
$ echo $HOME /home/local/FOOBAR/dotan $ whoami FOOBAR\dotancohen $ grep dotan /etc/passwd $ grep sourced ~/.profile echo 'sourced .profile' $ grep sourced ~/.bashrc echo "sourced .bashrc" $ echo $SHELL /bin/sh $ echo $TERM xterm $ bash sourced .bashrc - dotan-tm():~$ echo $SHELL /bin/sh - dotan-tm():~$ echo $TERM xterm-256color
As can be seen, both
.profile echo when they have been sourced. It seems that
.profile is not run when the default shell starts, but
.bashrc is run when bash starts. I used this answer to open bash from dash, but since
.profile is not run obviously that script is not having any effect.
Here is my complete
~/.profile file for reference:
$ cat .profile # ~/.profile: executed by the command interpreter for login shells. # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login # exists. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package. # the default umask is set in /etc/profile; for setting the umask # for ssh logins, install and configure the libpam-umask package. #umask 022 # if running bash if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi # set PATH so it includes user's private bin if it exists if [ -d "$HOME/.bin" ] ; then PATH="$HOME/.bin:$PATH" fi xmodmap ~/.Xmodmap export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* case $- in *i*) # Interactive session. Try switching to bash. if [ -z "$BASH" ]; then # do nothing if running under bash already bash=$(command -v bash) if [ -x "$bash" ]; then export SHELL="$bash" exec "$bash" -l fi fi esac echo 'sourced .profile' $