Does this mean that 'su - glibc' should always start bash
as a login shell, i.e. with --login?
If no, what is "an
environment similar to what the user would expect had the user
logged in directly"?
It means "whatever the shell does when it finds a "-" as first
character
in argv[0]. Bash's manpage says that " A login shell is one
whose
first character of argument zero is a - , or one started with
the --login
option." so the result of su - user should be the same as su
user
--login.
If so, then why do the following commands
still cause bash not to read ~/.bash_profile:
I have no idea why it doesn't work for you. Are you sure that
the glibc
package user actually HAS a .bash_profile?
root>echo "echo \"This is .bash_profile.\"" >~glibc/.bash_profile
root>cat ~glibc/.bash_profile
echo "This is .bash_profile."
root>echo 'echo $PATH' | su - glibc
/usr/bin:/bin
root> su - glibc
This is .bash_profile.
glibc>
Are you sure you're using the
correct su?
I checked that the version I am using is 5.2.1 from the coreutils
package:
root>su --version
su (coreutils) 5.2.1
[...]
Which version is the correct one? Shall I try a newer version of
coreutils?
--
http://linuxfromscratch.org/mailman/listinfo/lfs-support
FAQ: http://www.linuxfromscratch.org/lfs/faq.html
Unsubscribe: See the above information page