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>