[CentOS] root .bash_profile?

Jonathan Billings billings at negate.org
Mon May 13 20:37:01 UTC 2019


On Mon, May 13, 2019 at 04:20:17PM -0400, Bee.Lists wrote:
> > On May 13, 2019, at 2:46 PM, Pete Biggs <pete at biggs.org.uk> wrote:
> > Why do you think that?  '~' is just shell shorthand for user's home
> > directory.
> 
> root quite often isn’t recognized as a proper user.  ~/.bash_profile
> isn’t loaded because it’s not a normal login shell when entering
> `su`.

You'd find that if there's another user account on your system (lets
call it "fred"), and you ran 'su fred', it would not load
~fred/.bash_profile either, because it wasn't a login shell.  'root'
isn't special here.

> Isn’t moving from my own user using su, then prompted for password
> count as a login?   

As you read in the 'bash' man page, files that are loaded with a
"login shell" are different from files loaded from a normal shell
execution.  'su' has specific syntax for either running a shell as a
user or running a login shell as a user.  Just typing a password at
the prompt doesn't mean it was a login shell.

Typically, a 'login shell' is what you get when you log into a system
through login: or a graphical login.  .bash_profile is loaded once
when you log in.  It's meant for login stuff.  .bashrc is loaded for
every shell you start.

'su' is a tool used to switch users, so you are given the option to
either start a shell as a user or log in as that user, depending on
the situation.  

> man su doesn’t apply to root with regards to the files loaded up
> upon login.  Consequences of reading generic man pages result in
> more than one option.   

The 'su' man page explains all of this pretty well I think.  Becoming
root isn't special, in terms of loading .bash_profile vs. .bashrc.

-- 
Jonathan Billings <billings at negate.org>


More information about the CentOS mailing list